rendered paste body/*
* QuickSort.java
*
* Created on 29. Januar 2007, 16:41
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
/**
*
*
*/
public class QuickSort {
private static Comparable[] a;
private static void qsort( int lo0, int hi0) {
int lo = lo0;
int hi = hi0;
if ( hi0 > lo0) {
Comparable mid = a[ ( lo0 + hi0 ) / 2 ];
while ( lo <= hi ) {
while (( lo < hi0 ) && ( mComparator.compare(a[lo], mid) < 0 )){
++lo;
}
while (( hi > lo0 ) && ( mComparator.compare(a[hi], mid) > 0 )){
--hi;
}
if ( lo <= hi ) {
swap(a, lo, hi);
++lo;
--hi;
}
}
}
}
public static void sort(Comparable[] toBeSorted) {
a=toBeSorted;
qsort( 0, a.length - 1);
toBeSorted= a;
}
public abstract class Comparator {
public abstract int compare(Comparable obj1, Comparable obj2);
}
private static Comparator mComparator;
public QuickSort(Comparator comparator) {
mComparator = comparator;
}
private static void swap(Comparable[] toBeSorted, int i, int j) {
Comparable tmp = toBeSorted[i];
toBeSorted[i] = toBeSorted[j];
toBeSorted[j] = tmp;
}
}