// 快排,双指针挖坑,交互,分治法
public void quickSort (int[] array,int low, int height) {
if(low >= height) {
return;
}
int left = low, right = height;
int base = array[left]; //基数,array[left] 出现坑位
while (left < right) {
while (left<right && array[right]>base){
right--; // 比基数大,继续往低位找
}
if (left < right){
array[left++] = array[right]; // 填到低位坑位中
}
while (left<right && array[left]<=base){
left++; // 比基数小,继续往高位找
}
if (left<right){
array[right--]=array[left];// 填到高位坑位中
}
}
array[left] = base; // 中间位
quickSort(array,low,left); // 比基数小部分
quickSort(array,left+1,array.length-1); // 比基数大部分
}