public static void quickSort(int left,int right,int[] arrays){
//1、如果数组只有一个元素,直接结束,并且返回
if(left>=right){
return;
}
//2、选取基准值
int pivot=arrays[left];
int begin=left;
int end=right;
while(left<right){
//右边的人需要先走,因为会停在小的那个值哪里,否则会出现停在大的值哪里,交换后会出错
while (arrays[right]>=pivot && left<right){
right--;
}
while(arrays[left]<=pivot && left<right){
left++;
}
//3、进行交换
if(left<right){
int temp=arrays[right];
arrays[right]=arrays[left];
arrays[left]=temp;
}
}
arrays[begin]=arrays[left];
arrays[left]=pivot;
quickSort(begin,left-1,arrays);
quickSort(right+1,end,arrays);
}
|