sort関数の使い方(C言語)

C言語では、sort関数は配列のソートに使用され、そのプロトタイプは次のようになります。

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

パラメータの説明:

  1. ソートする配列の最初の要素を示すポインタ。
  2. nmemb:配列中要素の個数
  3. サイズ:各要素の大きさをバイト数で表します。
  4. cmpar: 2つの要素の比較を行うための関数ポインタ。

compar関数は、2つの要素の大小関係を判定するためにユーザーが定義した比較関数です。2つの要素の大小関係を表す整数値を返します。

  1. 返り値が0未満の場合は、最初の要素が2番目の要素よりも小さいことを示します。
  2. 返り値が0ならば、二つの要素が等しいことを示す。
  3. 戻り値が0より大きいときは1番目が2番目より大きい

ユーザが定義した比較関数によって、ソート関数は配列内の要素を昇順にソートします。

以下のコードは、sort関数を利用して整数型の配列をソートする方法を示しています。

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

int compare(const void *a, const void *b) {
    return (*(int*)a - *(int*)b);
}

int main() {
    int arr[] = {9, 5, 7, 2, 4};

    int n = sizeof(arr) / sizeof(arr[0]);

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

    printf("Sorted array: ");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }

    return 0;
}

上記のコードの出力結果は、「Sorted array: 2 4 5 7 9」となり、配列が昇順にソートされていることを示しています。

bannerAds