C++11特性shuffle()

shuffle可随机打乱数组

使用场景,例如常见的快速排序,当数组元素很对且基本有序时,时间复杂度会退化成o(n2)。优化方式有很多种,这里结合c++11特性shuffle()函数, 来优化快排时间复杂度

    #include 
    #include 
    #include 
    using namespace std;

    vector sortArray(vector& nums) 
    {
           shuffle(begin(nums), end(nums), default_random_engine(random_device()()));
           quicksort(nums, 0, nums.size()-1);
           return nums;
    }


    void quicksort(vector& nums, int low,int hei)
    {
        if(low>=hei)
            return;
        int par=partion(nums, low, hei);
        quicksort(nums, low, par-1);
        quicksort(nums, par+1, hei);
    }
    int  partion(vector& nums, int low, int hei)
    {
        int key=nums[low];
        while(low

你可能感兴趣的:(C++,c++)