【書式】
#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) 安江正樹@東海大学理学部物理学科】