この質問の目的は、他の並べ替えアルゴリズムに対してこのメリットを議論することではありません-これを行う他の多くの質問があります。この質問は名前についてです。クイックソートが「クイックソート」と呼ばれるのはなぜですか?確かに、それはほとんどの場合「迅速」ですが、常にというわけではありません。O(N ^ 2)に退化する可能性はよく知られています。この問題を軽減するさまざまな変更がクイックソートにありますが、最悪の場合を保証されたO(n log n)に下げるものは、一般にクイックソートと呼ばれなくなりました。(例:Introsort)。
よく知られているすべてのソートアルゴリズムのなかで、これが「クイック」という名前に値する唯一の理由であることに疑問を感じます。これは、アルゴリズムの動作方法ではなく、通常(通常)の速度を表します。Mergesortは、データをマージするため、それと呼ばれています。ヒープを使用するため、ヒープソートと呼ばれています。Introsortは、QuicksortからHeapsortに切り替えるタイミングを決定するために自身のパフォーマンスを監視するため、「Introspective」からその名前を得ています。同様に、すべての遅いもの(バブルソート、挿入ソート、選択ソートなど)についても同様です。私が考えることができる他の唯一の例外は「Bogosort」です。これは実際には誰も実際に実際に使用したことのない単なる冗談です。クイックソートが「パーティションソート」や「ピボットソート」など、より説明的なものと呼ばれないのはなぜですか。それが実際に何をしているのか?それは「最初にここに来た」の場合でさえありません。MergesortはQuicksortの15年前に開発されました。(ウィキペディアによると、それぞれ1945年と1960年)
これは、プログラミングの問題というより、歴史の問題だと思います。私はそれがどのように名前を付けたのか興味があります-それはちょうど良いマーケティングでしたか?
What's in a name? that which we call a rose By any other name would smell as sweet;
それまたは同じくらい速くなります。さらに、O(N ^ 2)に縮退する可能性は発生する可能性がほとんどなく、N LogNは、アルゴリズムが今日より高速であるにもかかわらず、かなり良いアルゴリズムです。その上、もっと速いものが登場する頃には手遅れで、誰もがすでにQuicksortと呼んでいました!