//快速排序
public static void quickSort(Integer[] arr) {
System.out.println(Arrays.toString(arr)+"=============");
quickSort(arr,0,arr.length-1);
}
public static void quickSort(Integer[] arr,int leftIndex,int rightIndex){
if(leftIndex>=rightIndex){//如果左边元素的下班大于或等于右边元素的下标,返回
return;
}
int left = leftIndex;//左边元素下标比较位置
int right = rightIndex;//右边元素下标比较位置
Integer key = arr[leftIndex];//待排序的第一个元素作为基准值
//从左右两边交替扫描,直到left = right
while (left<right){
while (left<right && key>=arr[right]){
right=right-1;
}
arr[left]=arr[right];
while (left<right && key<=arr[left]){
left = left+1;
}
arr[right]=arr[left];
}
arr[left] = key;
//对基准值左边的元素进行递归排序
quickSort(arr,leftIndex,left);
//对基准值右边边的元素进行递归排序
quickSort(arr,left+1,rightIndex);
}