Können wir tun, Quick-sort mit n logn worst-case Komplexität?

Ich Frage mich, ob wir das irgendwie ändern der Quick-sort-Algorithmus zu erzeugen, die worst-case Zeitkomplexität von O(n logn). Obwohl diese kann getan werden, indem permuting Daten und dann unter der Annahme, dass wir den durchschnittlichen Fall Komplexität eher als worst case. Aber dies ist nicht ein full-proof-Lösung wie können wir wieder land in schlimmsten Fall nach permuting. Gibt es eine andere Möglichkeit um, die Sie vorschlagen können.

  • Eine triviale Möglichkeit ist das hinzufügen von zwei Zeilen an den Anfang der Funktion: eine, die nicht ein Haufen oder merge-sort, und das zweite gibt. Ich verstehe, dass dies wahrscheinlich nicht das, was Sie im Sinn hatte, aber ich hoffe, dass dies verdeutlicht, dass Sie gehen zu müssen, zu sein mehr spezifisch über welche Art von "Umbauten" sind erlaubt, um die standard-quicksort Algorithmus... Sie gehen zu werden ziemlich präzise in Ihre Grenzen, etwas zu machen, wie ich vorgeschlagen haben, off-limits.
  • Ich dachte, wenn wir irgendwie können zwicken die schnelle Art selbst. Wie setzen einige Einschränkungen auf pivot. Kann ich einfach merge-sort statt der schnellen Sorte, anstatt mehrere Arten. Ich bin auf der Suche nach etwas zwicken in der Schnellen Sorte nur.
  • Siehe: stackoverflow.com/a/70631/44522
  • Richtig, aber das hinzufügen einiger code - oder den Ersatz der Quicksort-code mit Mergesort-code - ist ein "zwicken", wenn auch eine ziemlich wichtige. Sie erwähnen "setzen einige Beschränkungen für pivot"; das ist ein gutes Beispiel für eine Einschränkung, mit dem wir arbeiten können. Ich schlage vor, entweder den Umfang Ihrer Frage zu dieser bestimmten Richtung oder die Bereitstellung einer Liste aller solcher Richtungen, die fair-Spiel. Wenn ein Teil des Problems ist, dass Sie nicht verstehen, Quicksort gut genug, um zu fühlen, zuversichtlich Sie aufgeführt habe, alle potenziell gültige Wege, so zu sagen, und bitten für andere ähnliche Vorschläge. Nur Ideen...
  • Schauen Sie sich den link in MicSim Kommentar. Es scheint, wie diese Frage hat bereits ziemlich gute Aufmerksamkeit.
  • Ich war mir nicht bewusst die option zum Zusammenführen mehrerer algorithmen zur Sortierung. Du hast Recht, sollte explizit beschränkt sich der Umfang während der Frage Frage, aber es hat nicht durch meinen Kopf, dann. Ich mag deine Antwort und ich würde auf jeden Fall verwenden Sie für meine zukünftige Implementierungen.
  • Danke!!! konnte nicht finden, dass es vor der Veröffentlichung der Frage.

InformationsquelleAutor pseudocode | 2012-03-01
Schreibe einen Kommentar