差分

Functions HI-TECH C QSORT

1,174 バイト追加, 2017年12月29日 (金) 17:30
ページの作成:「<strong>QSORT</strong> ==概要== #include <stdlib.h> void qsort(void * base, size_t nel, size_t width, int (*func)()) ==詳細== <strong>Qsort</strong>()...」
<strong>QSORT</strong>
==概要==

#include <stdlib.h>

void qsort(void * base, size_t nel,
size_t width, int (*func)())


==詳細==
<strong>Qsort</strong>()はクイックソートアルゴリズムを実装したものだす。baseの位置のメモリに連続するそれぞれの幅のバイトの配列をソートします。

funcは<strong>qsort</strong>() がアイテムを比較すると吉使われる関数へのポインタです。2つのアイテムへのポインタを比較するためにfuncを呼び出します。最初のアイテムが、2番目よりも、大きい、等しい、小さい場合、それぞれ<strong>func</strong>()が0より大きい、0、0より小さい数を返します。

static short array[100];

#define SIZE sizeof array/sizeof array[0]
a_func(p1, p2)
short * p1, * p2;
{
return *p1 - *p2;
}

sort_em()
{
qsort(array, SIZE,
sizeof array[0], a_func);
}

これは昇順で配列をソートします。
shortのサイズから、もしくは配列内の要素数から独立してコードを作成する時にはsizeofを使用することに注意してください。