/**
* 选择基准数-一般是最左边的,也就是第一个arr[0](如果是左边第一个,则下一步则从右边开始,如果是右边第一个,则从左边开始)
* 从右边开始,如果比基准数大,左移,直到找到比基准数小的,停止,开始左边,如果比基准数小,右移,直到找到比基准数大的
* 两个找到的数左右交换,继续第二步,直到左边和右边相遇
* 把基准数和相遇位置数互换,这个时候基准数就是区分两边大小的标准数
* 基准数左边和右边各自分别进行以上操作-分而治之
*
* @param arr
*/
private static void quickSort(int[] arr, int left, int right) {
if(left>=right){
return;
}
int i = left;
int j = right;
int pivot = arr[left];
while (i < j) {
while (i < j && arr[j] >= pivot) {
j--;
}
while (i < j && arr[i] <= pivot) {
i++;
}
int temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
arr[left]=arr[i];
arr[i]=pivot;
quickSort(arr,left,i-1);
quickSort(arr,i+1,right);
}