一.非递归
int binarySearch(int arr[],int n){
int l=0,r=n-1;
while(l<=r){
int mid=(l+r)/2;
if(arr[mid]==target)
return mid;
if(target>arr[mid])
l=mid+1;
else
r=mid-1;
}
return -1;
}
二.递归
递归深度 depth
复杂度
O(T*depth),T:时间复杂度
int binarySearch(int arr[],int l,int r,int target){
if(l>r)
return -1;
int mid=l+(r-l)/2;
if(arr[mid]==target)
return mid;
else if(target>arr[mid])
return binarySearch(arr,mid+1,r,target);
else
return binarySearch(arr,l,mid-1,target);
}