递归版二分查找
使用递归进行二分查找,可以拆分成多个子问题。
全范围二分查找:等价于三个子问题:
- 左边找(递归)
- 中间比
- 右边找(递归)
public static int binarySearch(int findNum,int front,int end,int[] nums){
if (end<front){
return -1;
}
int mid=(front+end)/2;
if (findNum<nums[mid]){
return binarySearch(findNum, front, mid-1, nums);
}
if(findNum>nums[mid]){
return binarySearch(findNum, mid+1, end, nums);
}
return mid;
}