二分查找的递归解法
全范围内二分查找:
等价于三个子问题:
左边找(递归)
中间找
右边找(递归)
/*递归解法*/
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
}
}
本文详细介绍了二分查找算法的递归实现方法,通过分解为左、中、右三个子问题进行查找,实现了高效的目标元素搜索。适用于有序数组,递归终止条件清晰,返回目标元素的下标。
1942

被折叠的 条评论
为什么被折叠?



