#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; } };
思路:快速排序。