C-standard-library-c-function-qsort

提供:Dev Guides
移動先:案内検索

Cライブラリ関数-qsort()

説明

Cライブラリ関数 void qsort(void base、size_t nitems、size_t size、int( compar)(const void 、const void *))*は配列をソートします。

宣言

以下は、qsort()関数の宣言です。

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

パラメーター

  • ベース-これは、ソートされる配列の最初の要素へのポインタです。
  • nitems -これは、baseが指す配列内の要素の数です。
  • サイズ-これは、配列内の各要素のバイト単位のサイズです。
  • compar -これは2つの要素を比較する関数です。

戻り値

この関数は値を返しません。

次の例は、qsort()関数の使用法を示しています。

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

int values[] = { 88, 56, 100, 2, 25 };

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

int main () {
   int n;

   printf("Before sorting the list is: \n");
   for( n = 0 ; n < 5; n++ ) {
      printf("%d ", values[n]);
   }

   qsort(values, 5, sizeof(int), cmpfunc);

   printf("\nAfter sorting the list is: \n");
   for( n = 0 ; n < 5; n++ ) {
      printf("%d ", values[n]);
   }

   return(0);
}

次の結果を生成する上記のプログラムをコンパイルして実行しましょう-

Before sorting the list is:
88 56 100 2 25
After sorting the list is:
2 25 56 88 100