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

思路:快速排序。