快速排序

int partition(vector<int> &arr, int left, int right) {
    int key = arr[right];
    int i = left;
    for (int j = left; j <right; j++) {
        if (arr[j] < key) {
            swap(&arr[j], &arr[i]);
            i++;
        }
    }
    swap(&arr[i], &arr[right]);
    return i;
}

void qSort(vector<int> &arr, int left, int right) {
    if (left < right) {
        int mid = partition(arr, left, right);
        qSort(arr, left, mid - 1);
        qSort(arr, mid + 1, right);
    }

}

void qucikSort(vector<int> &arr) {
    qSort(arr, 0, arr.size() - 1);
}

 

posted @ 2022-03-22 18:38  ainingxiaoguai  阅读(12)  评论(0)    收藏  举报