Algorithmus:
Beim Heap Sort werden die Arrayelemente als Binärer Heap impliziert, so dass Element die Kinder und hat.
Zunächst werden alle Elemente durch Versickern, also ggf. Vertauschungen zu den Blättern hin, einsortiert.
Anschließend liefert ein fortgesetztes ExtractMin die sortierte Reihenfolge, Aufwand immer
.
Algorithmus:
Beim Merge Sort werden zunächst einzelne Elemente zu sortierten Zweiergruppen verschmolzen, dann jeweils
Zweiergruppen zu Vierergruppen usw., Laufzeit gesamt immer
.
Beim Verschmelzen werden zwei sortierte Arrays und mit getrennten Zählern und so durchlaufen,
dass immer das kleinere Element der Arrays
an den neuen Array gehängt und der entsprechende Zähler erhöht wird, lineare Laufzeit!
Algorithmus:
Bei Quicksort [Hoare] werden die Elemente in Partitionen '''', '''', '''' unterteilt und
rekursiv sortiert. Das Element ist erstes Element der Eingabe und heißt Pivotelement.
Analysen:
- Best Case:
, also etwa
- Worst Case: Eingabe vorsortiert,
- Average Case:
- Speicherplatz: kein zusätzlicher Speicher erforderlich, aber instabil
Verbesserungen:
- Hybridverfahren: Für ist Insertion Sort schneller, also Quicksort abbrechen und Insertion Sort verwenden
- Median of 3-Quicksort: Pivotelement als arithmetisches Mittel aus erstem, mittlerem und letztem Wert, Average Case
- Randomized Quicksort: Average Case
, aber Worst Case tritt nur mit Wahrscheinlichkeit 1/n! ein