原理
1.从数组中选择一个基准值
2.比基准值小的放在左边,比基准值打的放在右边,最后退出的时候,基准值则位于数组中间
3.对基准值左边进行排序,对基准值右边进行排序.
手撕代码
void quickSort(vector<int> &vec,int start,int end)
{
if(start<end)
{
int i = start, j =end;
int ele = vec[start];
while(i<j)
{
while(i<j && vec[j]>ele)
--j;
if(i<j)
vec[i] = vec[j];
++i;
while(i<j && vec[i]<ele)
++i;
if(i<j)
vec[j] = vec[i];
--j;
}
vec[i] = ele;
quickSort(vec,start,i-1);
quickSort(vec,i+1,end);
}
}