AuK/Teile und Herrsche 1 SS10/JavaQuick
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Java</language>
== Quicksort in Java ==
'''Der Algorithmus'''
<code id="4bbdf8e39a9bd">
public Object Quicksorter ()
{
private int[] a;
private int n;
public void sort(int[] values)
{
a=values;
n=a.length;
quicksort(0, n-1);
for(int i=0; i < a.length; i++) System.out.print(a[i]+ (i < a.length-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;
}
public int[] getArray(){
return a;
}
return this;
}
</code>
<eval id="4bbf141066923">
QuickSort = Quicksorter ();
QuickSort.sort(new int[] {1,42,5,23,6,34});
</eval>