-

「Functions HI-TECH C QSORT」の版間の差分

提供: HI-TECH C for CP/M Fan WIKI(JP)
移動先: 案内検索
(ページの作成:「<strong>QSORT</strong> ==概要== #include <stdlib.h> void qsort(void * base, size_t nel, size_t width, int (*func)()) ==詳細== <strong>Qsort</strong>()...」)
 
(相違点なし)

2017年12月29日 (金) 17:30時点における最新版

QSORT

概要

#include  <stdlib.h>

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


詳細

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

funcはqsort() がアイテムを比較すると吉使われる関数へのポインタです。2つのアイテムへのポインタを比較するためにfuncを呼び出します。最初のアイテムが、2番目よりも、大きい、等しい、小さい場合、それぞれfunc()が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を使用することに注意してください。