该题实现一个快速排序即可,注意vector是一个引用,否则函数调用后并不能改变vector

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 将给定数组排序
     * @param arr int整型vector 待排序的数组
     * @return int整型vector
     */
    vector<int> MySort(vector<int>& arr) {
        // write code here
        quick_sort(arr,0,arr.size() - 1);
        return arr;
    }

    void quick_sort(vector<int>& a, int left, int right)
    {
        if(left >= right)
            return;
        int pivot = parti(a,left,right);
        quick_sort(a,left,pivot-1);
        quick_sort(a,pivot+1,right);
    }

    int parti(vector<int>& a, int left, int right)
    {
        int i = left;
        int j = right;
        int tmp = a[left];

        while(i < j)
        {
            while(i<j && a[j] >= tmp)
                j--;
            while(i<j && a[i] <= tmp)
                i++;

            if(i < j)
            {
                int t = a[i];
                a[i] = a[j];
                a[j] = t;
            }
        }
        a[left] = a[i];
        a[i] = tmp;
        return i;
    }
};