C言語のsort関数の使い方は?

C言語では、stdlib.hヘッダーファイル内のqsort関数を使用して、ソート操作を行うことができます。

qsort関数の宣言は以下の通りです:

void qsort(void* base, size_t num, size_t size, int (*compar)(const void*, const void*));

パラメーター説明:

  1. 基本:配列の最初の要素を指すポインタ。
  2. num:配列内の要素の数。
  3. 各要素のサイズ(バイト単位)。
  4. 比較:2つの要素を比較するための関数へのポインタ。

比較関数comparのプロトタイプは以下のようになります:

int compar(const void* a, const void* b);

比較関数は、aとbの大小関係を示す整数値を返すべきです。aがbより小さい場合は負の数を返し、aがbと等しい場合は0を返し、aがbより大きい場合は正の数を返します。

qsort関数を使用してソートする例を示します。

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

// 比较函数,按照从小到大的顺序排序
int compare(const void* a, const void* b) {
    return (*(int*)a - *(int*)b);
}

int main() {
    int arr[] = {5, 2, 8, 1, 6};
    int n = sizeof(arr) / sizeof(arr[0]);

    qsort(arr, n, sizeof(int), compare);

    printf("排序后的数组:");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    return 0;
}

実行結果:

排序后的数组:1 2 5 6 8

このコードでは、まずcompareという比較関数が定義され、昇順で並べ替えるために使用されます。次に、整数型の配列arrが宣言され、qsort関数を使って並べ替えられます。最後に、並べ替え後の結果が出力されます。

bannerAds