二分的主要用途在于:一是对于已经排序的数组进行算法运算的时候
二:是在于遍历数组的时候。
递归实现二分查找
public void findX(int[] arr,int start,int end,int k){
if(start > end) return;
int mid = (start+end)>>>1;
if(arr[mid] > k){
findX();
}else if(arr[mid] == k){
}else{
findX();
}
}
循环实现二分查找
while(left < right){
int mid = (left+right) >>1;
if(arr[mid] > k) right = mid-1;
if(arr[mid] == k) return mid;
if(arr[mid] < k) left = mid+1;
}