100 100 100 85 第二题快速排序。 //划分一次就输出整个数组 int part(vector<int>&nums, int left, int right,int n){ int prv = nums[left]; int s = left; left++; while(left <= right){ while(right>=left&&nums[right]>= prv){ right--; } while(left<=right && nums[left]< prv){ left++; } if(right < left) break; swap(nums[left],nums[right]); } swap(nums[s], nums[right]); for(int i = 0; i< n;i++){ if(i == n-1){ cout<<nums[i]<<endl; } else cout<<nums[i]<<" "; } return right; } void helper1(vector<int>& nums, int left, int right, int n){ if(right<0) return ; if(left>=n ) return; if(left>=right) return ; int mid = part(nums, left, right, n); helper1(nums, left, mid-1, n); helper1(nums, mid+1, right, n); }