跳转至

快速排序#
发布于2021-01-14
上次编辑2021-02-25

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
int partition(int *arr, int left, int right) {
    int pivot = arr[left];
    while (left < right) {
        while (left < right && arr[right] > pivot) {
            --right;
        }
        arr[left] = arr[right];

        while (left < right && arr[left] <= pivot) {
            ++left;
        }
        arr[right] = arr[left];
    }
    arr[left] = pivot;
    return left;
}

void qsort(int *arr, int left, int right) {
    int pos;
    if (left < right) {
        pos = partition(arr, left, right);
        qsort(arr, left, pos - 1);
        qsort(arr, pos + 1, right);
    }
}
返回顶部

在手机上阅读