Please note that the recommended version of Scilab is 2026.0.0. This page might be outdated.
See the recommended documentation of this function
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 は種々のデータ型に関する
"クイックソート" アルゴリズムです.
B=gsort(A,'g'),B=gsort(A,'g','d')およびB=gsort(A)は 配列Aの要素をA(:)として 降順にソートします.B=gsort(A,'g','i')はAの要素を昇順にソートします.B=gsort(A,'lr')はAの行を辞書的に降順にソートします.Bは,Bの各行がB(i,:)>=B(j,:)(ただし,i<j)となるように, 行列Aの行を並び替えることにより 得られます.B=gsort(A,'lr','i')は 昇順の辞書的ソートについても同様に動作します.B=gsort(A,'lc')の列を辞書的に降順にソートします.Bは,Bの各列がB(:,i)>=B(:,j)(ただし,i<jとなるように, 行列Aの列を並び替えることにより 得られます.B=gsort(A,'lc','i')は 昇順の辞書的ソートについても同様に動作します.
二番目の戻り値引数が指定された場合,
kにAのソートされた値の添え字が
代入されます.
[B,k]=gsort(A,'g')の場合,
B==A(k)となります.
このアルゴリズムは,等しい値を有する
レコードの相対的な順序を保持します.
v が複素数の場合, その要素は
大きさ,すなわち, abs(v) によりソートされます,
2番目の引数としては'g'のみが複素数で使用可能です.
v が %nan または
%inf を要素として有する場合, gsort は
これらを 'i' の場合は先頭,
'd'の場合は末尾に置きます.
例
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')
参照
- find — 論理値ベクトルまたは行列のtrue要素の添え字を見つける
参考文献
Quick sort algorithm from Bentley & McIlroy's "Engineering a Sort Function". Software---Practice and Experience, 23(11):1249-1265
| << dsearch | searchandsort | lex_sort >> |