Java Quick-Sort (II)



next up previous WS Presentations Main Page
Next: Performance: Prolog vs. Up: Document: intro Previous: Java Quick-Sort (I)

Java Quick-Sort (II)

    static void sort(int a[], int lo0, int hi0) {
        int lo = lo0;
        int hi = hi0;
        if (lo >= hi) {
            return;
        }
        int mid = a[(lo + hi) / 2];
        while (lo < hi) {
            while (lo<hi && a[lo] < mid) {
                lo++;
            }
            while (lo<hi && a[hi] >= mid) {
                hi--;
            }
            if (lo < hi) {
                int T = a[lo];
                a[lo] = a[hi];
                a[hi] = T;
            }
        }
        if (hi < lo) {
            int T = hi;
            hi = lo;
            lo = T;
        }
        sort(a, lo0, lo);
        sort(a, lo == lo0 ? lo+1 : lo, hi0);
    }

    static void sort(int a[]) {
        sort(a, 0, a.length-1);
    }
}



Thu Jan 18 11:20:31 MET 1996 <herme@fi.upm.es>-<webmaster@clip.dia.fi.upm.es>