ティムソートとクイックソートの比較
2023-08-13 14:59:38
質問
Timsort (以下、Timsort) が最も速いソートアルゴリズムであるにもかかわらず、Quicksort が最も速いという話をよく耳にするのはなぜでしょうか? ウィキペディア によると) の方がずっと性能が良いように思えるのですが、なぜでしょうか? Google では、どのような種類の比較も見つからなかったようです。
どのように解決するのですか?
TimSortは高度に最適化されたマージソートであり、従来のマージソートよりも安定かつ高速に動作します。
クイックソートと比較した場合、2つの利点があります。
- ほぼソートされたデータ列(逆ソートされたデータも含む)に対して、信じられないほど高速に処理することができます。
- 最悪の場合でもO(N*LOG(N))です。
正直なところ、1番が有利とは思いませんが、印象には残りました。
QuickSortの利点は以下の通りです。
- QuickSortは非常にシンプルで、高度にチューニングされた実装でも、20行以内にそのPSeduoコードを書き出すことができます。
- ほとんどの場合、QuickSortが最も高速です。
- メモリ消費量は LOG(N) です。
現在、Java 7 SDKはtimsortと新しいクイックソートのバリエーション、すなわちDual Pivot QuickSortを実装しています。
安定したソートが必要な場合、timsortを試してみてください。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】なぜO(n)はO( nlog(n) )よりも優れているのでしょうか?)
-
[解決済み] NPとco-NPの違いは何ですか?
-
[解決済み] グラフにおいて最小容量が最大となる経路の探索
-
[解決済み] は、「減少しない」列が「増加する」のか?
-
[解決済み] 与えられた数列の中に現れない最小の正の整数を求めよ。
-
[解決済み] キャッシュの無効化 - 一般的な解決策はありますか?
-
[解決済み] 擬似多項式時間とは何ですか?多項式時間とどう違うのですか?
-
[解決済み] クイックソートとマージソートの比較 [重複]。
-
[解決済み] luceneはどのように文書をインデックスするのですか?
-
[解決済み] 円内の点の位置の計算