差分
ソート
,編集の要約なし
'''ソート'''(英語:sort)とは、一連の([[英語]]:sort)とは、一連の[[データ]]をある一定の[[順序]]に従って並べ替える処理である。
==主なソート[[アルゴリズム]]主なソートアルゴリズム==
実装例は、[[整数]]を[[昇順]]に並べ替えるものを示す。
===バブルソート===
<source lang="c">
void sort(int a[],int num) { int i,j, t; for(j=num-1;j>0;j--) { for(i=0;i<j;i++) { if(a[i]>a[i+1]) { int tempt =a[i]; a[i]=a[i+1]; a[i+1]=tempt; }
}
}
===挿入ソート===
<source lang="c">
void sort(int a[],int num) {
===ヒープソート===
実装が若干複雑な割にあまり高速ではない。
<source lang="c">
===シェルソート===
<source lang="c">
void sort(int a[],int num) {
===マージソート===
[[キャラソート]]でも採用されているらしい<ref>http://marineturtle.sakura.ne.jp/script/sort/hpsort/mergesort_exp.html</ref>。
===クイックソート===
分けた要素をそれぞれ同じようにソートし、ピポット未満の要素をソートしたものの後ろにピポット以上の要素をソートしたものをくっつける。
[[Haskell]]での記述例
===基数ソート===
データの種類が限られるが、特にデータ数が多い時に高速にソートできることがある。
<source lang="cpp">
=== スリープソート ===
詳細は「[[スリープソート]]」の項目を参照。