web-dev-qa-db-ja.com

クイックソートが「クイックソート」と呼ばれるのはなぜですか?

この質問の要点は、他の並べ替えアルゴリズムと比較してこのメ​​リットを議論することではありません-これを行う他の多くの質問があります。この質問は名前についてです。クイックソートが「クイックソート」と呼ばれるのはなぜですか?確かに、それはほとんどの場合「迅速」ですが、常にというわけではありません。 O(N ^ 2)に縮退する可能性はよく知られています。この問題を軽減するさまざまな変更がQuicksortにありますが、ワーストケースを保証されたO(n log n)に下げる変更は、一般にQuicksortと呼ばれなくなりました。 (例:Introsort)。

よく知られているすべてのソートアルゴリズムの理由は何でしょうか。これが「クイック」という名前に値する唯一のアルゴリズムです。これは、アルゴリズムがどのように機能するかではなく、(通常)どれほど高速であるかを示します。 Mergesortは、データをマージするため、それと呼ばれています。ヒープを使用するため、ヒープソートと呼ばれています。 Introsortは、QuicksortからHeapsortに切り替えるタイミングを決定するために自身のパフォーマンスを監視するため、「Introspective」からその名前を得ています。同様に、低速のすべてのもの(バブルソート、挿入ソート、選択ソートなど)についても同様です。私が考えることができる他の唯一の例外は「Bogosort」です。これは実際には誰も実際に実際に使用したことのない単なる冗談です。クイックソートが「パーティションソート」や「ピボットソート」など、それが実際に何をするかを説明するようなより記述的なものと呼ばれないのはなぜですか? 「最初にここに来た」というケースすらありません。 MergesortはQuicksortの15年前に開発されました。 (ウィキペディアによると、それぞれ1945年と1960年)

これは、プログラミングの問題というよりも、歴史の問題だと思います。私はそれがどのように名前を付けたのか興味があります-それはちょうど良いマーケティングでしたか?

9
Darrel Hoffman

1962年のソートアルゴリズムの研究は今日ほど進んでおらず、コンピューター科学者 Tony Hoare は他よりも速い新しいアルゴリズムを発見したので、 Quicksortと呼ばれる論文 を発表しました。 =そして、論文が引用されたので、タイトルは残りました。

要約を引用する:

コンピュータのランダムアクセスストアでの新しい並べ替え方法について説明します。この方法は、速度、ストレージの経済性、プログラミングの容易さにおいて、他の既知の方法と比較して非常に優れています。内部ループの最適化に役立つ可能性のある、この方法の特定の改良点については、論文の後半で説明します。

13
johannes

もともとは発明者にちなんでHoare Sortと呼ばれていたと思いますが、Hoareが英語で売春婦に少し近く聞こえるため、名前はかなり早く変更されました。彼らが他の何かの代わりに「クイック」を選んだ理由については、私にはわかりません。

0
Evicatos