Links : Prüfe, ob mindestens 2 Werte sortiert werden müssen
PivotIndex := Teile (Daten, Links, Rechts): Das rechte Element wird als Pivotelement verwendet. Die Funktion sortiert die Daten so um, dass alle Daten links vom Pivotelement kleiner und alle Daten rechts vom Pivotelement größer als dieses sind. Der Rückgabewert gibt die neue Position des Pivotelements an.
QuickSort (Daten, Links, PivotIndex - 1): Sortiere alle Daten links vom Pivotelement
QuickSort (Daten, PivotIndex + 1, Rechts): Sortiere alle Daten rechts vom Pivotelement
Ende
Teile (Daten, Links, Rechts)
i := Links: Zähler von links
j := Rechts - 1: Zähler von rechts
Pivot := Daten [Rechts]: Wert des Pivotelements. Nach Ende der Sortierung stehen alle kleineren Werte links und alle größeren Werte rechts vom Pivotelement.
Daten [i] <= Pivot und i < Rechts: Suche einen falsch einsortierten Wert links vom Pivotelement
i := i + 1
Daten [j] >= Pivot und j > Links: Suche einen falsch einsortierten Wert rechts vom Pivotelement
j := j + 1
i : Sind noch nicht alle Werte sortiert?
Tausche Daten [i] mit Daten [j]: Tausche die falsch einsortierten Werte gegeneinander aus
Tausche Daten [i] mit Daten [Rechts]: Zum Schluß muss nur noch das Pivot-Element an die richtige Stelle kopiert werden.