【发布时间】:2018-11-09 07:09:14
【问题描述】:
我的递归 Java 二进制搜索算法不起作用
这是我的方法:
System.out.println("recursiveBinarySearch "+recursiveBinarySearch(x,0,x.length-1,10));
public static int recursiveBinarySearch(int[]array,int low,int high,int value){
int mid;
if(low<=high){
mid=(low+high)/2;
if(array[mid]<value){
recursiveBinarySearch(array,mid+1,high,value);
}else if(array[mid]>value){
recursiveBinarySearch(array,low,mid-1,value);
}else{
return mid;
}
}
return -1;
}
它似乎总是返回-1,这意味着该方法未能找到值。有人可以帮我解决这个问题并得到正确的结果吗?
【问题讨论】:
-
你能描述什么不工作吗?
-
我们需要查看
x变量值。如果数组没有排序,则在使用该方法之前使用Arrays.sort(x),否则绑定搜索的原理将不起作用。 -
你试过调试了吗?
-
recursiveBinarySearch(..)->return recursiveBinarySearch(...) -
输出是“recursiveBinarySearch -1”
标签: java recursion search binary-search