void QuickSort(vector&nums, int left, int right) { if (left >= right) { return; } int l = left; int r = right; int pos = rand() % (r - l) + l; int pivot = nums[pos]; nums[pos] = nums[l]; nums[l] = pivot; while (l < r) { while (nums[r] >= pivot && l < r) r--; nums[l] = nums[r]; while (nums[l] <= pivot && l < r) l++; nums[r] = nums[l]; } nums[l] = pivot; QuickSort(nums, left, l - 1); QuickSort(nums, r + 1, right); }



