首页 > 代码库 > 快速排序

快速排序

public void quickSort(int left, int right, int a[]) {
        int l = left;
        int r = right;
        int pivot = a[(l + r) / 2];// 转轴数
        int temp = 0;
        while (l < r) {
            while (a[l] < pivot)
                l++;
            while (a[r] > pivot)
                r--;

            if (l >= r)
                break;

            temp = a[l];
            a[l] = a[r];
            a[r] = temp;

            if (a[l] == pivot)
                r--;
            if (a[r] == pivot)
                l++;
        }
        if (l == r) {
            l++;
            r--;
        }
        if (left < r)
            quickSort(left, r, a);
        if (right > l)
            quickSort(l, right, a);
    }

 

快速排序