//leetcode 912
//参考:算法导论
int partition(vector<int>& p, int l, int r){
int x = p[r];
int i=l-1;
for(int j=l;j<r;++j){
if(p[j]<=x){
i++;
swap(p[i], p[j]);
}
}
swap(p[i+1], p[r]);
return i+1;
}
void quickSort(vector<int>& p, int l, int r){
if(l>=r) return;
int pos = partition(p, l, r);
quickSort(p, l, pos-1);
quickSort(p, pos+1, r);
}