1、快速排序
① 递归法
void quickSort(vector<int>& nums, int l, int r) { if (l > r) { return; } // --- core begin --- int base = nums[l], i = l, j = r; while (i < j) { while (nums[j] >= base) { // 从右边找到第一个比base小的数 j--; } while (nums[i] <= base) { // 从左边找到第一个比base大的数 i++; } if (i < j) { swap(nums[i], nums[j]); } } swap(nums[i], nums[l]); // --- core end --- quickSort(nums, l, i - 1); quickSort(nums, i + 1, r) }