Hier mein Vorschlag für einen funktionsfähigen einteiligen Pseudocode: funktion quicksort(links, rechts) i := links j := rechts - 1 pivot := links + Int[[rechts - links + 1] / 2] // Das Element "pivot" mit dem Letzten vertauschen falls pivot < rechts dann tausche daten[pivot] mit daten[rechts] ende pivot := daten[rechts] wiederhole solange i < j // Der Anfang ist kleiner als Pivot falls i < rechts und daten[i] < pivot dann i := i + 1 ende // Das Ende ist größer oder gleich als Pivot falls links < j und daten[j] >= pivot dann j := j - 1 ende // Wenn zutreffend, den Anfang und das Ende vertauschen falls i < j und daten[i] >= pivot und daten[j] < pivot dann tausche daten[i] mit daten[j] ende ende // Eine eventuelle fehlerhafte Position von "i" korrigieren falls daten[i] < pivot dann i := i + 1 ende // Das Element "i" mit "pivot" vertauschen falls i < rechts dann tausche daten[i] mit daten[rechts] ende // Wenn zutreffend, die Rekursion "kleiner als..." starten falls links < i - 1 dann starte funktion quicksort(links, i - 1) ende // Wenn zutreffend, die Rekursion "größer als..." starten falls i + 1 < rechts dann starte funktion quicksort(i + 1, rechts) ende ende -- 18:26, 18. Apr. 2022 (CEST)