题解 | #排序#

排序

https://www.nowcoder.com/practice/2baf799ea0594abd974d37139de27896

#include <fstream>
class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 将给定数组排序
     * @param arr int整型vector 待排序的数组
     * @return int整型vector
     */
    vector<int> quickSort(vector<int>& arr, int l, int r) {
        if(l >= r) return arr;
        int mid = (l + r) / 2;
        int x = arr[mid], i = l - 1, j = r + 1;
        while (i < j) {
            do i ++; while(arr[i] < x);
            do j --; while(arr[j] > x);
            if(i < j) swap(arr[i], arr[j]);
        }
        quickSort(arr, l, j);
        quickSort(arr, j + 1, r);
        return arr;
    }
    vector<int> MySort(vector<int>& arr) {
        if(arr.size() == 1) return arr;
        quickSort(arr, 0, arr.size() - 1);
        return arr;
    }
};

全部评论

相关推荐

09-28 18:05
门头沟学院 C++
点赞 评论 收藏
分享
09-01 21:40
已编辑
同济大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务