- Scilab Online Help
- Elementary Functions
- Discrete mathematics
- Floating point
- Integer representation
- Trigonometry
- abs
- amell
- and
- &
- binomial
- bitand
- bitor
- bloc2exp
- bloc2ss
- cat
- cell2mat
- cellstr
- char
- cumprod
- cumsum
- delip
- diag
- diff
- dsearch
- exp
- eye
- flipdim
- gsort
- imag
- imult
- ind2sub
- intersect
- inttrap
- isdef
- isempty
- isequal
- isequalbitwise
- isreal
- isvector
- kron
- lex_sort
- linspace
- log
- log10
- log1p
- log2
- logm
- logspace
- lstsize
- max
- maxi
- meshgrid
- min
- mini
- modulo
- ndgrid
- ndims
- nextpow2
- norm
- ones
- or
- |
- pen2ea
- permute
- pertrans
- prod
- rand
- real
- resize_matrix
- setdiff
- sign
- signm
- size
- solve
- sort
- sqrt
- sqrtm
- squarewave
- ssrand
- sub2ind
- sum
- sysconv
- sysdiag
- syslin
- toeplitz
- trfmod
- trianfml
- tril
- trisolve
- triu
- typeof
- union
- unique
- vectorfind
- zeros
Please note that the recommended version of Scilab is 2025.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')
参照
参考文献
Quick sort algorithm from Bentley & McIlroy's "Engineering a Sort Function". Software---Practice and Experience, 23(11):1249-1265
<< flipdim | Elementary Functions | imag >> |