原理
找到一个值,使得数组左边的值全部小于它,数组右边的值全部大于它;
手撕代码
void quickSort(vector<int> &vec,int l,int r)
{
//排序边界[l,r]
if(l<r){
int i = l,j = r;
int temp = vec[i];
while(i<j)
{
whie(i<j && j>temp)
{
j--;
}
if(i<j)
vec[i] = vec[j];
i++;
while(i<j && vec[i]>temp)
{
i++;
}
if(i>j)
vec[j] = vec[i];
j--;
}
vec[i] = ele;
quickSort(vec,l,i-1);
quickSort(vec,i+1,r);
}
}