qsort 関数は、配列をソートするために使用される C 言語のライブラリ関数です。 qsort 関数は非常に汎用的で、あらゆるタイプの配列を処理できますが、特に複雑なデータ構造を扱う場合、比較関数は複雑になる可能性があります。
qsort 関数は、配列をソートするために使用される C 言語のライブラリ関数です。これは、8e359799bdf1a571032ba13cc96acda9 ヘッダー ファイルで定義されます。 qsort 関数のプロトタイプは次のとおりです:
void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*));
qsort 関数のパラメータの説明は次のとおりです:
base: は最初の要素を指しますソートする配列のオブジェクトへのポインタ。
nitems: 配列内の要素の数。
size: 各要素のサイズは通常、sizeof 演算子を使用して取得されます。
compar: 2 つの要素の順序を決定するために使用される比較関数。この関数は、比較する要素を指す 2 つのポインターを受け入れ、最初の要素が 2 番目の要素より小さい場合は負の数を返し、等しい場合は 0 を返し、最初の要素が 2 番目の要素より大きい場合は正の数を返します。
これは、整数の配列を並べ替える qsort 関数の使用例です。
#include <stdio.h> #include <stdlib.h> // 比较函数,用于决定排序 int compare(const void *a, const void *b) { int int_a = *((int*) a); int int_b = *((int*) b); if (int_a == int_b) return 0; else if (int_a < int_b) return -1; else return 1; } int main() { int i; int numbers[] = {7, 3, 4, 1, -1, 23, 12, 43, -8, 5}; int size = sizeof(numbers) / sizeof(int); // 对数组进行排序 qsort(numbers, size, sizeof(int), compare); // 输出排序后的数组 for(i = 0; i < size; i++) { printf("%d ", numbers[i]); } return 0; }
注: qsort 関数は非常に汎用的で、あらゆる型を処理できますが、 array の比較関数ですが、特に複雑なデータ構造を扱う場合には、その比較関数が複雑になる可能性があります。比較関数を作成するときは、それが期待どおりに動作することを確認してください。
以上がqsort関数の使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。