public class QuickSortAlgorithm extends SortAlgorithm
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: