Hier ist die Aufschlüsselung von Quicksorts Zeitkomplexität in Big O Notation:
* Bester Fall: O (n log n)
* Dies tritt auf, wenn der bei jedem Schritt ausgewählte Drehpunkt das Array in ungefähr gleiche Hälften unterteilt. Dies führt zu einem ausgewogenen Rekursionbaum.
* Durchschnittlicher Fall: O (n log n)
* Im Durchschnitt spielt Quicksort sehr gut. Die Pivot-Auswahl muss nicht perfekt dafür sein, um nahezu optimale Leistung zu erzielen.
* schlimmster Fall: O (n^2)
* Dies geschieht, wenn der Drehpunkt durchweg das kleinste oder größte Element im Array ist. Dies führt zu einem sehr unausgeglichenen Rekursionsbaum, bei dem ein Teilproblem die Größe 0 und das andere auf Größe N-1 aufweist. Im Wesentlichen verschlechtert es sich auf die Leistung ähnlich wie die Sortierung der Selektion oder Blasen. Ein häufiges Szenario ist, wenn das Eingabebereich bereits sortiert oder nahezu sortiert ist.
Wichtige Notizen
* Randomisierte QuickSort: Eine Variation von Quicksort, die den Drehpunkt zufällig auswählt, verringert die Wahrscheinlichkeit, dass es dem Worst-Case-Szenario begegnet ist, signifikant. Randomisierte Quicksort hat eine durchschnittliche und erwartete Zeitkomplexität von O (N log n).
* In-Place-Sortierung: QuickSort ist ein In-Place-Sortieralgorithmus (es erfordert minimal zusätzlichen Speicher, normalerweise O (log n) für den Rekursionsstapel).
* Praktische Leistung: Trotz der Möglichkeit eines schlimmsten Falles O (n^2) ist QuickSort in der Praxis oft sehr effizient und wird häufig in Standard-Sortierfunktionen der Standardbibliothek verwendet. Zu den Vorteilen gehören ihre Einsicht und relativ kleine konstante Faktoren.
* Vergleich mit Zusammenführungssorte: Merge-Sortierung hat in allen Fällen eine garantierte o-Zeitkomplexität von o (n log n), aber es ist nicht an Ort und erfordert O (n) Hilfsraum). Daher wird Quicksort häufig bevorzugt, wenn Raum ein wichtiges Problem darstellt und die Daten einigermaßen gut verteilt sind.
Zusammenfassend:
| Fall | Zeitkomplexität |
| -------------- | ------------------ |
| Am besten | O (n log n) |
| Durchschnitt | O (n log n) |
| Schlimmste | O (n^2) |