//快排
//1.基准数、左哨兵、右哨兵 2.右哨兵先启动
public static void quickSort(int[] arr, int start, int end) {
if(start >= end){
return;
}
//基准数
int temp = arr[start];
//左哨兵,找比基准数大的
int left = start;
//右哨兵,找比基准数小的
int right = end;
while (left<right){
//左哨兵启动
while (arr[right] >= temp && left < right){
right--;
}
//右哨兵启动
while (arr[left] <= temp && left < right){
left++;
}
//左右交换
int t = arr[left];
arr[left] = arr[right];
arr[right] = t;
}
//将相遇位置的元素放到基准数位置
arr[start] = arr[left];
arr[left] = temp;
// 分为两段 左边数字 再来一遍
quickSort(arr,start,left-1);
//右边
quickSort(arr,left+1,end);
}