1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| void QuickSort(vector<int>& nums, int left, int right) { if (left >= right) return;
int pivot = rand() % (right - left + 1) + left; swap(nums[pivot], nums[right]);
pivot = nums[right]; int i = left; for (int j = left; j < right; ++j) { if (nums[j] < pivot) { swap(nums[i++], nums[j]); } } swap(nums[i], nums[right]);
QuickSort(nums, left, i - 1); QuickSort(nums, i + 1, right); }
vector<int> SortArray(vector<int>& nums) { srand((unsigned)time(NULL)); QuickSort(nums, 0, nums.size() - 1); return nums; }
int main() { vector<int> nums = {1, 3, 10, 32, 32, 2, 5, 6, 0, 4, -1, 100}; SortArray(nums); for (int num : nums) cout << num << " "; }
|