RT,利用递归思想实现二分查找,练练手,大佬可以评论区指正。
代码如下:
package s4;
public class q4_4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] arr = {1,2,3,4,5,6,7,8,9,10,11,12,13,156,490,510};
System.out.println(erfen(arr,0,arr.length,418516));
}
//递归实现二分查找
static int erfen(int[]arr,int start,int end,int des) {
int mid = start + (end - start)/2;
//判断查不到的情况
if((start > end) || mid >= arr.length) {
return -1;
}
if(des == arr[mid]) {
return mid;
}else if(des < arr[mid]) {
end = mid - 1;
}else {
start = mid + 1;
}
return erfen(arr,start,end,des);
}
}