C言語のsort関数の使い方

C言語では、sort関数は配列をソートするために使用されます。その使用方法を以下に示します。

  1. ヘッダーファイルの取り込み:#include
  2. 配列の要素を比較するのに使用する関数を定義する。比較関数の定義は次のとおりです。
int compare(const void *a, const void *b) {
    // 指针类型转换
    const int *num1 = (const int *)a;
    const int *num2 = (const int *)b;
    
    // 比较并返回结果
    if (*num1 < *num2) {
        return -1;
    } else if (*num1 > *num2) {
        return 1;
    } else {
        return 0;
    }
}

比較関数の返り値が負の場合、aはbより前に配置され、正の場合、aはbより後に配置され、0の場合はaとbは等しい。

  1. qsort(array, arraySize, sizeof(int), compare);

以下に完全なサンプルコードを示します。

#include <stdio.h>
#include <stdlib.h>

int compare(const void *a, const void *b) {
    const int *num1 = (const int *)a;
    const int *num2 = (const int *)b;
    
    if (*num1 < *num2) {
        return -1;
    } else if (*num1 > *num2) {
        return 1;
    } else {
        return 0;
    }
}

int main() {
    int array[] = {5, 2, 8, 1, 9};
    int arraySize = sizeof(array) / sizeof(array[0]);
    
    qsort(array, arraySize, sizeof(int), compare);
    
    for (int i = 0; i < arraySize; i++) {
        printf("%d ", array[i]);
    }
    printf("\n");
    
    return 0;
}

配列が昇順にソートされている場合は、出力は 1 2 5 8 9 になります。

bannerAds