static void qsort(int[] array, int le, int re)
{
int lo = le, hi = ri;
if (hi > lo)
{
// Pivot-Element bestimmen
int mid = array[(lo + hi) / 2];
while (lo <= hi)
{
// erstes Element suchen, das grösser oder gleich dem
// Pivot-Element ist, beginnend vom linken Index
while (lo < ri && array[lo] < mid)
++lo;
// Element suchen, das kleiner oder gleich dem
// Pivot-Element ist, beginnend vom rechten Index
while (hi > le && array[hi] > mid)
--hi;
// Wenn Indexe nicht gekreuzt -> Inhalte vertauschen
if (lo <= hi)
{
swap(array, lo, hi);
++lo;
--hi;
}
}
// Linke Partition sortieren
if (le < hi)
qsort(array, le, hi);
// Rechte Partition sortieren
if (lo < ri)
qsort(array, lo, ri);
}
}
static void quickSort(int[] array)
{
qsort(array, 0, array.length - 1);
}
[/PHP]