C言語のsort関数の使い方
C言語では、sort関数は配列をソートするために使用されます。その使用方法を以下に示します。
- ヘッダーファイルの取り込み:#include
- 配列の要素を比較するのに使用する関数を定義する。比較関数の定義は次のとおりです。
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は等しい。
- 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 になります。