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 37 38 39 40 41 42 43 44 45
| #include <iostream> #include <vector>
using namespace std;
void QuickSort(vector<int>& nums, int l, int r) { if (l >= r) return; int pivot = nums[l], i = l, j = r; while (i < j) { while (i < j && nums[j] >= pivot) j--; nums[i] = nums[j]; while (i < j && nums[i] <= pivot) i++; nums[j] = nums[i]; } nums[i] = pivot; QuickSort(nums, l, i - 1); QuickSort(nums, i + 1, r); }
void QuickSort(vector<int>& nums, int l, int r) { if (l >= r) return; int pivot = nums[l], i = l, j = r; while (i < j) { while (i < j && nums[j] >= pivot) j--; while (i < j && nums[i] <= pivot) i++; swap(nums[i], nums[j]); } swap(nums[l], nums[i]); QuickSort(nums, l, i - 1); QuickSort(nums, i + 1, r); }
int main() { vector<int> nums = {2, 1, 3, 5, 8, 2, 9, 1, 4, 7, 6, 0}; QuickSort(nums, 0, nums.size() - 1); for (int num : nums) cout << num << " "; return 0; }
|