public class QuickSort extends SortAlgorithm {

	void quicksort(int a[], int l, int r) {
		int i, j; int v;	
		if (r > l) {
			v = a[r]; i = l-1; j = r;
			for (;;) { 
				while (a[++i] < v) ;
				while (a[--j] > v) if (j == l) break;
				if (i >= j) break;	
				swap(a, i, j);
				pause();
			}
			swap(a, i, r);
			pause();
			quicksort(a, l, i-1);
			pause();
			quicksort(a, i+1, r);
			pause();
		}
	}

   	public void sort(int a[]) {
      	quicksort(a, 0, a.length-1);
   	}
}

