手撕 快排
//快速排序,递归操作,先找到枢纽,将所有比枢纽小的数放到其左边,将所有比其大的数放到其右边 void QuickSort(vector<int>& nums, int l, int r){ if (l + 1 >= r) return; int x = l, y = r - 1, xnum = nums[x]; while (x < y) { while (x < y && nums[y] >= xnum) y--; nums[x] = nums[y]; while (x < y && nums[x] <= xnum) x++; nums[y] = nums[x]; } nums[x] = xnum; QuickSort(nums, l, x); QuickSort(nums, x + 1, r); }

浙公网安备 33010602011771号