Wie erreicht man die Verteilung?
Wähle ein und bewege:
alle x in a [lo .. hi]
mit x < p
nach links,
alle x in a [lo .. hi]
mit x > p
nach rechts.
Ansatz:
int p = a [lo]; int l = lo; int r = hi; while (l < r) { while ( a[l] <= p ) { l++; } while ( a[r] >= p ) { r--; } if (l < r) { swap (a, l, r); } }Aufgabe: finde Fehler und repariere!