Bei dieser Frage geht es nicht darum, die Vorzüge eines anderen Sortieralgorithmus zu diskutieren - sicherlich gibt es viele andere Fragen, die dies tun. Diese Frage bezieht sich auf den Namen. Warum heißt Quicksort "Quicksort"? Sicher, es ist die meiste Zeit "schnell", aber nicht immer. Die Möglichkeit einer Degeneration zu O (N ^ 2) ist bekannt. Es gibt verschiedene Modifikationen an Quicksort, die dieses Problem mindern, aber diejenigen, die den schlimmsten Fall auf ein garantiertes O (n log n) reduzieren, werden im Allgemeinen nicht mehr als Quicksort bezeichnet. (zB Introsort).
Ich frage mich nur, warum von allen bekannten Sortieralgorithmen dies der einzige ist, der den Namen "schnell" verdient, der nicht beschreibt, wie der Algorithmus funktioniert, sondern wie schnell er (normalerweise) ist. Mergesort wird so genannt, weil es die Daten zusammenführt. Heapsort heißt so, weil es einen Heap verwendet. Introsort hat seinen Namen von "Introspective", da es seine eigene Leistung überwacht, um zu entscheiden, wann von Quicksort zu Heapsort gewechselt werden soll. Ähnliches gilt für alle langsameren - Bubblesort, Einfügesortierung, Auswahlsortierung usw. Sie sind alle nach ihrer Funktionsweise benannt. Die einzige andere Ausnahme, an die ich denken kann, ist "Bogosort", was wirklich nur ein Witz ist, den niemand jemals in der Praxis benutzt. Warum wird Quicksort nicht als beschreibender bezeichnet, wie "Partitionssortierung" oder "Pivot-Sortierung"? welche beschreiben was es eigentlich macht? Es geht nicht einmal darum, "zuerst hier zu sein". Mergesort wurde 15 Jahre vor Quicksort entwickelt. (1945 bzw. 1960 laut Wikipedia)
Ich denke, das ist wirklich eher eine Geschichtsfrage als eine Programmierfrage. Ich bin nur neugierig, wie es zu dem Namen kam - war es nur gutes Marketing?
quelle
What's in a name? that which we call a rose By any other name would smell as sweet;
Das oder genauso schnell sein. Außerdem hat die Möglichkeit der Degeneration zu O (N ^ 2) eine geringe Wahrscheinlichkeit, und N LogN ist für einen Algorithmus ziemlich gut, obwohl wir heute schnellere Algorithmen haben. Außerdem war es zu spät, als etwas schnelleres auftauchte, alle nannten es bereits Quicksort!Antworten:
1962 war die Forschung zu Sortieralgorithmen nicht so weit fortgeschritten wie heute, und der Informatiker Tony Hoare fand einen neuen Algorithmus, der schneller als der andere war. Deshalb veröffentlichte er einen Artikel namens Quicksort, und als der Artikel zitiert wurde, blieb der Titel erhalten.
Das Abstract zitieren:
quelle
Ich glaube, dass es ursprünglich nach dem Erfinder Hoare Sort genannt wurde, aber der Name wurde ziemlich früh geändert, da Hoare auf Englisch ein wenig zu nahe an der Hure klang. Ich bin mir nicht sicher, warum sie "schnell" anstelle von etwas anderem gewählt haben.
quelle
Ich glaube, das liegt daran, dass es zu der Zeit, als es erfunden wurde, sehr viel schneller war als alle (oder besser gesagt, die meisten, da die Geschwindigkeit auch stark von der Art der Daten abhängt und in einigen Fällen andere Algorithmen viel schneller als Quicksort werden) Algorithmen da draußen.
Also ja, es ist historisch (ich kenne diese Geschichte jedoch nicht genau ...)
Aber ich stimme zu, dass sein Name stattdessen einen Hinweis auf den Algorithmus enthalten sollte ...
quelle