这篇文章上次修改于 996 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

JAVA版本

static void quickPaixu(int arr[], int left, int right) {
    int l = left, r = right;
    int pivot = arr[(left + right) / 2];
    while (l < r) {
        while (arr[l] < pivot) {
            l++;
        }
        while (arr[r] > pivot) {
            r--;
        }
        if (l >= r) {
            break;
        }
        int temp = arr[l];
        arr[l] = arr[r];
        arr[r] = temp;
        if (arr[r] == pivot) {
            l++;
        }
        if (arr[l] == pivot) {
            r--;
        }
    }
    if (l == r) {
        l++;
        r--;
    }
    if (left < r) {
        quickPaixu(arr, left, r);
    }
    if (l < right) {
        quickPaixu(arr, l, right);
    }
}