Quicksort-Algorithmus
Text von KI erstellt
Der Quicksort-Algorithmus ist ein effizientes, rekursives Sortierverfahren, das nach dem Teile-und-Herrsche-Prinzip (Divide and Conquer) funktioniert. Er wurde 1959 von Tony Hoare entwickelt und ist einer der schnellsten Sortieralgorithmen für große Datensätze.
Funktionsweise
Quicksort funktioniert, indem es eine Liste in kleinere Teillisten aufteilt, diese rekursiv sortiert und dann wieder zusammenführt.
Auswahl des Pivots
Ein Element der Liste wird als Pivot ausgewählt. Üblicherweise wird das letzte, erste oder ein zufälliges Element der Liste gewählt.
Partitionierung
Die Liste wird so umsortiert, dass alle Elemente, die kleiner als das Pivot sind, links davon stehen, und alle Elemente, die größer sind, rechts davon.
Rekursive Sortierung
Die beiden Teillisten (links und rechts des Pivots) werden rekursiv mit Quicksort sortiert.
Implementierung in Python
Beispielablauf
Schritt 1: Auswahl des Pivots
Angenommen, die Liste ist [3, 6, 8, 10, 1, 2, 1]. Das letzte Element 1 wird als Pivot gewählt.
Schritt 2: Partitionierung
- Linke Teilliste:
[1, 1](alle Elemente ≤ Pivot) - Rechte Teilliste:
[3, 6, 8, 10, 2](alle Elemente > Pivot)
Schritt 3: Rekursive Sortierung
Die Teillisten werden rekursiv sortiert, bis die gesamte Liste sortiert ist.
Zeitkomplexität
| Fall | Komplexität |
|---|---|
| Best Case | O(n log n) |
| Average Case | O(n log n) |
| Worst Case | O(n²) |
Vor- und Nachteile
Vorteile
- Sehr schnell für große Datensätze.
- Benötigt wenig zusätzlichen Speicher (in-place Varianten möglich).
Nachteile
- Im schlimmsten Fall (bereits sortierte Liste) ist die Performance O(n²).
- Nicht stabil (die relative Reihenfolge gleicher Elemente kann sich ändern).