class Solution { public: int Partition(vector<int> &nums, int left, int right) { // 采用子序列的第一个元素为枢纽元素 int pviont = nums[left]; while (left<right) { // 从后往前在后半部分中寻找第一个小于枢纽元素的元素 while(nums[right]>pviont) { right--; } swap(nums[right], nums[left]); while (nums[left]<pviont) { left++; } swap(nums[right], nums[left]); } return left; } void quickSort(vector<int> &nums,int left,int right) { if (left<right) { int n = Partition(nums, left, right); quickSort(nums, left, n); quickSort(nums, n+1, right); } } };