Source of QuickSortAlgorithm.java


  1: 
  2: public class QuickSortAlgorithm extends SortAlgorithm {
  3:   public QuickSortAlgorithm(AlgorithmAnimator animator) {
  4:     super(animator); 
  5:   }
  6: 
  7:   protected void QSort(int a[], int lo0, int hi0) {
  8:     int lo = lo0;
  9:     int hi = hi0;
 10:     int mid;
 11: 
 12:     pause();
 13:     if (hi0 > lo0) {
 14:       mid = a[ ( lo0 + hi0 ) / 2 ];
 15:       while( lo <= hi ) {
 16:         while( ( lo < hi0 ) && ( a[lo] < mid ) )
 17:           ++lo;
 18:         while( ( hi > lo0 ) && ( a[hi] > mid ) )
 19:           --hi;
 20:         if( lo <= hi ) {
 21:           swap(a, lo, hi);
 22:           pause();          
 23:           ++lo;
 24:           --hi;
 25:         }
 26:       }
 27:       if( lo0 < hi )
 28:         QSort( a, lo0, hi );
 29:       if( lo < hi0 )
 30:         QSort( a, lo, hi0 );
 31:     }
 32:   }
 33: 
 34:   public void sort(int a[]) {
 35:     QSort(a, 0, a.length - 1);
 36:   }
 37: }
 38: