public class sortUtil{
public static void quickSort(int[] intArray){
quickSortRecursion(intArray,0,intArray.length-1);
}
private static void quickSortRecursion(int[] intArray, int lowPointer,int highPointer) {
if(lowPointer>=highPointer || intArray==null || intArray.length==0){//①
return;
}
int low=lowPointer,high=highPointer;
int pivot = low;
//开始分组
while(low<high){
//high指针左移
while(intArray[pivot]<=intArray[high]&&low<high){//②
high--;
}
if(low<high){
int tempValue = intArray[pivot];
intArray[pivot]= intArray[high];
intArray[high]= tempValue;
pivot= high;
}
//low指针右移
while(intArray[pivot]>=intArray[low]&&low<high){
low++;
}
if(low<high){
int tempValue = intArray[pivot];
intArray[pivot]= intArray[low];
intArray[low]= tempValue;
pivot= low;
}
}
//轴点左右两组分别继续分组;
quickSortRecursion(intArray,0,pivot-1);
quickSortRecursion(intArray,pivot+1,highPointer);//③
}
}
11-30
3448
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
11-23
2930
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
08-09
2710
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)