Code:
Die folgende Funktion quicksort sortiert ein Teilstück des Arrays a vom Index lo bis zum Index hi.
Die Sortierfunktion ist in der Klasse QuickSorter gekapselt. Die Methode sort übergibt das zu sortierende Array an das Array a, setzt n auf dessen Länge und ruft quicksort mit dem unteren Index 0 und dem oberen Index n-1 auf.
Die Hilfsfunktion exchange(i, j) vertauscht die Array-Elemente a[i] und a[j].
Mit den Anweisungen QuickSorter s=new QuickSorter();
s.sort(b);
wird ein Objekt vom Typ QuickSorter erzeugt und anschließend die Methode sort zum Sortieren eines Arrays b aufgerufen. Es folgt das Programm.
public class QuickSorter
{
private int[] a;
private int n;
public void sort(int[] a)
{
this.a=a;
n=a.length;
quicksort(0, n-1);
}
private void quicksort (int lo, int hi)
{
int i=lo, j=hi;
int x=a[(lo+hi)/2];
// Aufteilung
while (i<=j)
{
while (a[i]<x) i++;
while (a[j]>x) j--;
if (i<=j)
{
exchange(i, j);
i++; j--;
}
}
// Rekursion
if (lo<j) quicksort(lo, j);
if (i<hi) quicksort(i, hi);
}
private void exchange(int i, int j)
{
int t=a[i];
a[i]=a[j];
a[j]=t;
}
} // end class QuickSorter
Quelle (FH Flensburg)
Damit funktionierts