<< find searchandsort members >>

Scilabヘルプ >> Elementary Functions > searchandsort > gsort

gsort

クイックソートアルゴリズムによるソート

呼び出し手順

[B [,k]]=gsort(A)

[B [,k]]=gsort(A,option)

[B [,k]]=gsort(A,option,direction)

引数

A

実数,整数または文字列のベクトル/行列または疎ベクトル.

option

文字列. ソートの種類(下記)を指定します:

  • 'r' : A の各列がソートされます

  • 'c': A の各行がソートされます

  • 'g': A の全要素がソートされます. デフォルト値です.

  • 'lr': Aの列の辞書式ソート

  • 'lc': Aのの行の辞書式ソート

direction

文字列. ソートの方向を指定します: 'i' は昇順, 'd' は降順 (デフォルト)を意味します.

B

Aと同じ型と次元の配列.

k

整数値を有し,Aと同じ次元の実数配列. 元の添え字を有します.

説明

gsort は種々のデータ型に関する "クイックソート" アルゴリズムです.

二番目の戻り値引数が指定された場合, kAのソートされた値の添え字が 代入されます. [B,k]=gsort(A,'g')の場合, B==A(k)となります. このアルゴリズムは,等しい値を有する レコードの相対的な順序を保持します.

v が複素数の場合, その要素は 大きさ,すなわち, abs(v) によりソートされます, 2番目の引数としては'g'のみが複素数で使用可能です.

複素数の場合, gsort はオーバーロードできます.

マクロを参照: SCI/modules/elementary_functions/macros/%_gsort.sci

(実数,整数または文字列ベクトル/行列または疎ベクトル以外の) 管理されない型のオーバーロードが可能です.

v%nan または %inf を要素として有する場合, gsort は これらを 'd' の場合は先頭, 'i'の場合は末尾に置きます.

alr=[1,2,2;

1,2,1;

1,1,2;

1,1,1];

[alr1,k]=gsort(alr,'lr','i')

[alr1,k]=gsort(alr,'lc','i')

v=int32(alr)

gsort(v)

gsort(v,'lr','i')

gsort(v,'lc','i')

v=['Scilab' '2.6'

'Scilab' '2.7'

'xcos' '2.7'

'Scilab' '3.1'

'xcos' '3.1'

'xcos' '4.0'

'Scilab' '4.0']

gsort(v,'lr','i')

gsort(v,'lc','i')

参照

参考文献

Quick sort algorithm from Bentley & McIlroy's "Engineering a Sort Function". Software---Practice and Experience, 23(11):1249-1265

履歴

バージョン記述
5.4.0 この関数は(実数, 整数または文字列ベクトル/行列または疎ベクトル以外の) 管理されない型についてオーバーロードできるようになりました.

Report an issue
<< find searchandsort members >>