void QuickSort(int *a,int begin,int end)
{
if(begin<end)
{
int temp = a[begin];
int i=begin;
int j=end;
while(i<j)
{
while(i<j&&a[j]>temp)
j--;
a[i]=a[j];
while(i<j&&a[i]<=temp) //此处为小于等于否则不能处理相等的元素,两个地方总有一个需要带等号
i++;
a[j]=a[i];
}
a[i]=temp;
QuickSort(a,begin,i-1);
QuickSort(a,i+1,end);
}
else
return ;
}
详细思想讲解:
大佬图解