快速排序
一种简介实现,相比较于标准写法,每次比较之后确保左边比右边小,而不是比基准小,但是更简单。
void qsort(vector<int>& nums, int left, int right) {
if(left > right) return;
int i = left, j = right;
int mid = left + (right - left) / 2 ;
int flag = nums[mid];
while (i <= j) {
while (nums[i] < flag) i++;
while (nums[j] > flag) j--;
if (i <= j) {
swap(nums[i], nums[j]);
i++;
j--;
}
}
qsort(nums, left, j);
qsort(nums, i, right);
}