二分查找的递归解法
全范围内二分查找:
等价于三个子问题:
左边找(递归)
中间找
右边找(递归)
/*递归解法*/
int binarySearch(int arr[],int low,int high,int key){
if(low>high) {
return -1;
}
int mid=low+((high-low)>>1);
int midVal=arr[mid];
if(midVal<key){
return binarySearch(arr,mid+1,high,key);
}
else if(midVal>key){
return binarySearch(arr,low,high-1,key);
}
else{
return mid; //key found
}
}