next up previous
Nächste Seite: Quicksort (III) Aufwärts: Grundlagen der Java-Programmierung (Vorlesung Vorherige Seite: Quick-Sort

Quicksort (II)

Wie erreicht man die Verteilung?

Wähle ein $p$ 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!



Johannes Waldmann 2004-01-30