目次 |
1.コーディング上の注意#include "sort.h" を指定して下さい。注:内部で,標準ヘッダファイル <math.h>, <string.h> をインクルードしています。 2.ライブラリ一覧ソート用関数名には,int型, double型, *uchar型の各々対象データの型により,_i, _d, _c が付きます。( 注:uchar は、unsigned char 型で、sort.h で typedef により定義しています。) 以下の表中で、ai, ad, ac は,それぞれ int型, double型, *uchar型被ソートデータ配列を、n (int型)はデータ数を, max, min は,各データの取りうる最大値,最小値をそれぞれのデータ型で指定します。 len (int型)は uchar* 型データの'\0'文字を除く最大文字数です。 逆写像ソート及び間接分布数えソートは,int 型のみ,ラディックスソートは,uchar* 型のみが対象です。 間接ソート関数は,int 型配列 jun に昇順の順位(0〜n-1)を格納して戻り,被ソートデータ配列自体はソートしません。 (jun は, int* 型ポインタとして渡します。) 注1 : 内部で, subquick_i(), subquick_d(), submerge_i(), submerge_d(), submerge_c(), strcomp() をコールしているので,同名の関数を使用しないで下さい。 注2 : len長,n個 の uchar 型配列のダイナミックアロケーション用関数として,uchar **salloc(n, len) を使用しています。 (1)ソート用関数(型はすべて void型) (目次に戻る) |
クイックソート quick sort |
qsort_i(ai, n) qsort_d(ad, n) qsort_c(ac, n) |
バブルソート bubble sort |
bsort_i(ai, n) bsort_d(ad, n) bsort_c(ac, n) |
挿入ソート insert sort |
inssort_i(ai, n) inssort_d(ad, n) inssort_c(ac, n) |
選択ソート selection sort |
ssort_i(ai, n) ssort_d(ad, n) ssort_c(av, n) |
マージソート merge sort |
msort_i(ai, n) msort_d(ad, n) msort_c(ac, n, len) |
ヒープソート heap sort |
hsort_i(ai, n) hsort_d(ad, n) hsort_c(ac, n) |
逆写像ソート inverse mapping sort |
mapsort(ai, n, max, min) |
分布数えソート distribution counting sort |
distsort_i(ai, n, max, min) distsort_d(ad, n, max, min) |
ラディックスソート radix sort |
radsort(ac, n, len) |
間接クイックソート indirection quick sort |
iqsort_i(ai, n, jun) iqsort_d(ad, n, jun) iqsort_c(ac, n, jun) |
間接分布数えソート indirect distribution counting sort |
idistsort(ai, n, max, min, jun) |
(2)昇順⇔降順データ入換え用関数 (目次に戻る) |
void inv_i(ai, n) |
void inv_d(ad, n) |
void inv_c(ac, n) |
(3)uchar 型配列のダイナミックアロケーション用関数 |
uchar **salloc(n, len) |
(4)ソート済データ重複チェック&削除関数flag が0のとき重複チェックのみを行い,非0のとき重複データを削除し前詰めします。(dbldel_c( )は,削除(\0代入)のみで前詰めはしません。) 各関数は戻り値として,重複しないデータの総個数を返します。 |
int dbldel(a, n, flag) |
int dbldel_i(ai, n, flag) |
int dbldel_d(ad, n, flag) |
int dbldel_c(ac, n, flag) |
(5)ランキング関数 (目次に戻る)( k + 1 )番目の要素( xx[k] )の値を返します。 |
関数名及び型 | 引数及び型 |
int rank_i(ai, n, k) | int *ai, n, k; |
double rank_d(ad, n, k) | double *ad; int n, k; |
uchar *rank_c(ac, n, k) | uchar **ac; int n, k; |