我必须实现二进制搜索方法来查找值是否在数组中。我必须使用递归。
public static boolean searchBin(int[] array, int x, int l, int r) {
int center;
center =(l+r) / 2;
if ( x > array[center] )
{
l = center+1;
}
else
{
r = center-1;
}
if ( array[center] == x )
{
return true;
}
else
{
if ( l<=r )
{
searchBin(array,x,l,r);
}
else
{
return false;
}
}
}
我收到以下错误:
Missing return statement
谢谢。
最佳答案
这是因为错误表明“并非所有路径都返回一个值”。
这是可能的问题:
searchBin(array,x,l,r);
修复将是:
return searchBin(array,x,l,r);
关于Java二进制搜索递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22079763/