public static void QSort(int[] array, int left, int right) {
//left数组的最小下标,right数组最大下标
if (left > right) { //判断本次是否执行
return;
}
int low = left;
int high = right;
int key=array[low]; //将数组第一个数定为基准
while(low<high){
while(low<high && array[high]>key) //从后往前,直到找到小于基准的数
high--;
array[low]=array[high]; //小数移动到前面
while(low<high && array[low]<key) //从前往后,直到找到大于基准的数
low++;
array[high]=array[low]; //大数移动到后面
}
array[low]=key; //此时low在中间,将基准放入
QSort(array,left,low-1); //小数组递归
QSort(array,low+1,right); //大数组递归
}