C++实现快速排序

void qsort(vector<int>& arr,int left,int right) {
    if (left >= right) return;
    int begin = left, end = right,pivot = arr[begin];;
    while(begin < end) {
        while(begin < end && arr[end] >= pivot) {
            --end;
        }
        arr[begin] = arr[end];
        while(begin < end && arr[begin] <= pivot) {
            ++begin;
        }
        arr[end] = arr[begin];
    }
    arr[begin] = pivot;
    qsort(arr,left,begin - 1);
    qsort(arr,begin + 1,right);
}
vector<int> MySort(vector<int>& arr) {
    qsort(arr,0,arr.size() - 1);
    return arr;
}

 

posted @ 2021-03-17 17:34  凝视深空  阅读(65)  评论(0编辑  收藏  举报