ソートプログラム 使用法

index 目次

  1. コーディング上の注意
  2. ライブラリ一覧



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型)         index (目次に戻る)

クイックソート
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)昇順⇔降順データ入換え用関数      index (目次に戻る)

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)


注1:dbldel( )は,uchar型データ配列(1個の文字列)が対象です。

(5)ランキング関数                  index (目次に戻る)

( 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;