1. 快速排序:
class Solution {
public:
void qs(vector<int>& a, int left, int right) {
if(left>=right) return;
int target=a[left], temp, i=left, j=right;
while(i<j) {
while(a[j]>=target && i<j) j--;
while(a[i]<=target && i<j) i++;
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
a[left]=a[i];
a[i]=target;
qs(a, left, i-1);
qs(a, i+1, right);
}
void sortColors(vector<int>& nums) {
qs(nums, 0, nums.size()-1);
}
};
2. 归并排序:
3. 二分查找: