Translations of this page?:

qsort

文法:

    #include <cstdlib>
    void qsort( void *バッファ, size_t 数, size_t サイズ, int (*比較関数)(const void*, const void *) );

qsort関数は、指定されたバッファ(個の、サイズで指定された大きさの要素を持つ)を、クイックソートのアルゴリズムを使用してソートします。比較関数バッファの要素を比較するのに使用され、最初の引数が二番目の引数よりも小さければ負の値を、等しければゼロを、大きければ正の値を返す関数を指定します。qsort()関数は、バッファを、昇順にソートします。

以下のサンプルは、数値の配列を、qsort()を使用してソートしています:

   int compare_ints( const void* a, const void* b ) {  // 比較関数
     int* arg1 = (int*) a;
     int* arg2 = (int*) b;
     if( *arg1 < *arg2 ) return -1;
     else if( *arg1 == *arg2 ) return 0;
     else return 1;
   }
 
   int array[] = { -2, 99, 0, -743, 2, 3, 4 };
   int array_size = 7;
 
   ...
 
   printf( "ソート前: " );
   for( int i = 0; i < array_size; i++ ) {
     printf( "%d ", array[i] );
   }
   printf( "\n" );
 
   qsort( array, array_size, sizeof(int), compare_ints );
 
   printf( "ソート後: " );
   for( int i = 0; i < array_size; i++ ) {
     printf( "%d ", array[i] );
   }
   printf( "\n" );

これを実行すると、以下のように表示されます:

   ソート前: -2 99 0 -743 2 3 4
   ソート後: -743 -2 0 2 3 4 99

関連トピック: bsearch, sort

 
• • • SitemapRecent changesRSScc