ソートアルゴリズムの一覧とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > ソートアルゴリズムの一覧の意味・解説 

ソートアルゴリズムの一覧

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/10 08:33 UTC 版)

ソート」の記事における「ソートアルゴリズムの一覧」の解説

配列格納されたn個のデータソートする場合について、各アルゴリズム性能を示す。計算時間表記用いている記号 O(オー)については、ランダウの記号参照。 以下の表で、n はソートすべきデータ要素数である。平均実行時間最悪実行時間時間計算量示している。このとき、ソートキー長さ一定仮定しており、比較交換といった操作定数時間行われるとする。メモリ使用量は、入力データ格納域以外に必要となる領域示している。これらは、いずれも比較ソートである。 名称平均計算時間最悪計算時間メモリ使用量安定性手法備考バブルソート n 2 {\displaystyle n^{2}} n 2 {\displaystyle n^{2}} 1 {\displaystyle 1} ○ 交換 シェーカーソート n 2 {\displaystyle n^{2}} n 2 {\displaystyle n^{2}} 1 {\displaystyle 1} ○ 交換 コムソート n log ⁡ n {\displaystyle n\log n} n 2 {\displaystyle n^{2}} 1 {\displaystyle 1} × 交換 コードサイズが小さくて済む。 ノームソート n 2 {\displaystyle n^{2}} n 2 {\displaystyle n^{2}} 1 {\displaystyle 1} ○ 交換 センタク/選択ソート n 2 {\displaystyle n^{2}} n 2 {\displaystyle n^{2}} 1 {\displaystyle 1} × 選択 安定ソートとしても実装可能 ソウニユウ/挿入ソート n 2 {\displaystyle n^{2}} n 2 {\displaystyle n^{2}} 1 {\displaystyle 1} ○ 挿入 最良計算時間が Θ ( n ) {\displaystyle \Theta (n)} になる。 シェルソート n log ⁡ n {\displaystyle n\log n} ≧ n 1.5 {\displaystyle n^{1.5}} 1 {\displaystyle 1} × 挿入 最悪 Ω ( n 3 2 ) {\displaystyle \Omega (n^{\frac {3}{2}})} や Ω ( n 4 3 ) {\displaystyle \Omega (n^{\frac {4}{3}})} の数列実用化されている。 2分木ソート n log ⁡ n {\displaystyle n\log n} n log ⁡ n {\displaystyle n\log n} n {\displaystyle n} ○ 挿入 平衡2分探索木使った場合 図書館ソート n log ⁡ n {\displaystyle n\log n} n 2 {\displaystyle n^{2}} n {\displaystyle n} ○ 挿入 マージソート n log ⁡ n {\displaystyle n\log n} n log ⁡ n {\displaystyle n\log n} n {\displaystyle n} ○ マージ 連結リスト場合は O ( 1 ) {\displaystyle O(1)} 外部メモリIn-place マージソート n log 2 ⁡ n {\displaystyle n\log ^{2}n} n log 2 ⁡ n {\displaystyle n\log ^{2}n} 1 {\displaystyle 1} ○ マージ 実装例 ヒープソート n log ⁡ n {\displaystyle n\log n} n log ⁡ n {\displaystyle n\log n} 1 {\displaystyle 1} × 選択 スムースソート — n log ⁡ n {\displaystyle n\log n} 1 {\displaystyle 1} × 選択 クイックソート n log ⁡ n {\displaystyle n\log n} n 2 {\displaystyle n^{2}} log ⁡ n {\displaystyle \log n} × パーティショニング メモリコールスタック素朴な実装では Ω ( n ) {\displaystyle \Omega (n)} になる) イントロソート n log ⁡ n {\displaystyle n\log n} n log ⁡ n {\displaystyle n\log n} log ⁡ n {\displaystyle \log n} × 混成 メモリコールスタック ペイシェンスソート — n 2 {\displaystyle n^{2}} n {\displaystyle n} × 挿入 O ( n log ⁡ n ) {\displaystyle O(n\log n)} 以内すべての最長増加部分列を探す。 ストランドソート n log ⁡ n {\displaystyle n\log n} n 2 {\displaystyle n^{2}} n {\displaystyle n} ○ 選択 キクウテンチ/奇偶転置ソート n 2 {\displaystyle n^{2}} n 2 {\displaystyle n^{2}} 1 {\displaystyle 1} ○ 交換 シェアソート n 1.5 {\displaystyle n^{1.5}} n 1.5 {\displaystyle n^{1.5}} 1 {\displaystyle 1} × 交換 次の表は、比較ソート以外のソートアルゴリズムの一覧である。そのため、下限が O(n log n) で制限されない。k はキー長さ、s は実装使われるチャンクサイズである。これらの一部は、キー十分に長く各要素キー重複しないことを前提としている。すなわち、n << 2k仮定している(<< は「十分小さい」)。 名称平均計算時間最悪計算時間メモリ使用量安定性n << 2k?備考ハトノス/鳩の巣ソート n + 2 k {\displaystyle n+2^{k}} n + 2 k {\displaystyle n+2^{k}} 2 k {\displaystyle 2^{k}} ○ ○ バケットソート n + k {\displaystyle n+k} n 2 {\displaystyle n^{2}} n k {\displaystyle nk} ○ × 入力データ定義域一様分布すると仮定 フンフカソエ/分布数えソート n + 2 k {\displaystyle n+2^{k}} n + 2 k {\displaystyle n+2^{k}} n + 2 k {\displaystyle n+2^{k}} ○ ○ LSD 基数ソート n k / s {\displaystyle nk/s} n k / s {\displaystyle nk/s} n {\displaystyle n} ○ × MSD 基数ソート n k / s {\displaystyle nk/s} n ( k / s ) 2 s {\displaystyle n(k/s)2^{s}} ( k / s ) 2 s {\displaystyle (k/s)2^{s}} × × スプレッドソート n k / log ⁡ n {\displaystyle nk/\log n} n ( k − log ⁡ n ) 0.5 {\displaystyle n(k-\log n)^{0.5}} n {\displaystyle n} × × n << 2k場合計算時間だが、それ以外場合でもソート可能 キヤクシヤソウ/逆写像ソート n {\displaystyle n} ? N/A n {\displaystyle n} ? ○ × 次の表は、あまりにも性能が悪いので通常用いられないソートアルゴリズム、および特別なハードウェア必要なソートアルゴリズムの一覧である。 名称平均計算時間最悪計算時間メモリ使用量安定性大小比較備考ボゴソート n ⋅ n ! {\displaystyle n\cdot n!} ∞ 1 {\displaystyle 1} × ○ 平均時間クヌースのシャッフル使った場合 ボゾソート n ⋅ n ! {\displaystyle n\cdot n!} ∞ 1 {\displaystyle 1} × ○ 平均時間ボゴソート約半分漸近する。 ストゥージソート n 2.71 {\displaystyle n^{2.71}} n 2.71 {\displaystyle n^{2.71}} log ⁡ n {\displaystyle \log n} × ○ スリープソート 値の最大値×プロセス起動単位時間実際に誤差あり) 同左 n {\displaystyle n} ? × ? 条件が特殊。実用正確性保証されない。 ビードソート N/A N/AN/A × 専用ハードウェアが必要 タンシユンハンケエキ/単純パンケーキソート n {\displaystyle n} n {\displaystyle n} log ⁡ n {\displaystyle \log n} × ○ 反転定数時間行えるものと仮定 ソーティングネットワーク log ⁡ n {\displaystyle \log n} log ⁡ n {\displaystyle \log n} n log ⁡ n {\displaystyle n\log n} ○ × 大きさ O ( n log ⁡ n ) {\displaystyle O(n\log n)} の回路が必要。 バイトニックソート log 2 ⁡ n {\displaystyle \log ^{2}n} log 2 ⁡ n {\displaystyle \log ^{2}n} n log 2 ⁡ n {\displaystyle n\log ^{2}n} × × 計算時間メモリ使用量ソーティングネットワークとして実装したときの値 バッチャー奇偶マージソート log 2 ⁡ n {\displaystyle \log ^{2}n} log 2 ⁡ n {\displaystyle \log ^{2}n} n log 2 ⁡ n {\displaystyle n\log ^{2}n} × × 計算時間メモリ使用量ソーティングネットワークとして実装したときの値

※この「ソートアルゴリズムの一覧」の解説は、「ソート」の解説の一部です。
「ソートアルゴリズムの一覧」を含む「ソート」の記事については、「ソート」の概要を参照ください。

ウィキペディア小見出し辞書の「ソートアルゴリズムの一覧」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ソートアルゴリズムの一覧」の関連用語

1
8% |||||

ソートアルゴリズムの一覧のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ソートアルゴリズムの一覧のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのソート (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS