快速排序我觉得讲的还不错的链接:快速排序(详细讲解)_梦里Coding的博客-CSDN博客_快速排序
leetcode 912
下面的快排只能通过10个用例,但是我学会了快排
class Solution {
public:
void quickSort(vector<int>& nums, int l, int r) {
if (l >= r) {
return;
}
int first = l;
int last = r;
int key = nums[first];
while (first < last) {
while (first < last && nums[last] >= key) {
last--;
}
nums[first] = nums[last];
while (first < last && nums[first] <= key) {
first++;
}
nums[last] = nums[first];
}
nums[first] = key;
quickSort(nums, l, first - 1);
quickSort(nums, first + 1, r);
}
vector<int> sortArray(vector<int>& nums) {
quickSort(nums, 0, nums.size() - 1);
return nums;
}
};