递归法Q3——二分查找
package 递归;
/*
template:1.terminator 2.drill down 3.reverse states
*/
public class 二分查找 {
int binarySearch(int []nums,int begin,int end,int target) {
if(begin<=end) {
int mid=begin+((end-begin)>>1);
if(nums[mid]<target) {
return binarySearch(nums,mid+1,end,target);
}else if(nums[mid]>target) {
return binarySearch(nums,begin,mid-1,target);
}else {
return mid+1;
}
}
return -1;
}
public static void main(String[] args) {
二分查找 a=new 二分查找();
int []nums=new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
//System.out.println(a.binarySearch(nums,0,9,11));
System.out.println(a.binarySearch(nums,0,9,7));
}
}