int pivot; //下次读取前assign value即可
if(left < right){
pivot = partition(a, left, right);
quicksort(a, left, pivot-1);
quicksort(a, pivot+1, right);
}
}
public static int partition(int[] arr, int left, int right){ //为什么有left和right?因为用到双指针
int pivot = left;
while(left<=right){ //这里有等于号
while(left <= right && arr[left] <= arr[pivot]) //从左侧先开始,这里有等号
left++;
while(left < right && arr[right] > arr[pivot])
right++;
if(left > right) break;
swap(arr, left, right)
}
swap(arr, pivot, right); //把pivot和right进行swap
}
//https://discuss.leetcode.com/topic/14611/java-quick-select