qsort - データのソート

【書式】

#include <stdlib.h> or <search.h>

void qsort(void *base, size_t nel, size_t width, int(*compar)(const

void *x, const void *y));

【解説】

qsort()はデータを昇順に並べ換えます。baseはデータの先頭アドレス、nel

はソートするデータの個数、 widthはデータの各要素の大きさをバイト数で

表したもの、comparは比較関数へのポインタです。

comparの指している関数は、2つのポインタ(xとy)を引数として、 次の値を

返さなくてはなりません。

*x > *yの時 正

*x = *yの時 0

*x < *yの時 負

【使用例】

次のプログラムは int型オブジェクトの配列の先頭アドレス(z)と要素数(n)

を使って、配列内のオブジェクトを昇順に並べ換えます。

#include <stdlib.h>

int compare(const void *x, const void *y)

{

return (*(const int *)x - *(const int *)y);

}

void foo(int z[], int n)

{

qsort(z, n, sizeof(int), compare);

}

【可搬性】

ANSI, UNIX, DOS窓

【参照】

bsearch(3)

【copyright (c) 安江正樹@東海大学理学部物理学科】