qsort関数の使い方

DDD
DDDオリジナル
2023-12-07 13:52:39842ブラウズ

qsort 関数は、配列をソートするために使用される C 言語のライブラリ関数です。 qsort 関数は非常に汎用的で、あらゆるタイプの配列を処理できますが、特に複雑なデータ構造を扱う場合、比較関数は複雑になる可能性があります。

qsort関数の使い方

qsort 関数は、配列をソートするために使用される C 言語のライブラリ関数です。これは、8e359799bdf1a571032ba13cc96acda9 ヘッダー ファイルで定義されます。 qsort 関数のプロトタイプは次のとおりです:

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

qsort 関数のパラメータの説明は次のとおりです:

  1. base: は最初の要素を指しますソートする配列のオブジェクトへのポインタ。

  2. nitems: 配列内の要素の数。

  3. size: 各要素のサイズは通常、sizeof 演算子を使用して取得されます。

  4. 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

関連記事

続きを見る