All pastes #332376 Raw Edit

abschaum

public text v1 · immutable
#332376 ·published 2007-01-29 23:05 UTC
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;
	}


    
    
}