下面的代码是如何我试图创建一个递归二进制方法..爪哇 - 递归二进制搜索帮助
public static int binarySearch(Comparable[] objArray, Comparable item)
{
int lower=0;
int upper=objArray.length -1;
int i = -1;
int compareResult;
boolean found = false;
while ((lower<=upper) && (!found))
{
i=(lower+upper)/2;
compareResult=item.compareTo(objArray[i]);
if(compareResult<0)
{
upper=i-1;
}
else
if (compareResult>0)
{
lower=i+1;
}
else
{
found=true;
}
}
return compareResult;
}
我觉得想法我没有正确这样做......有什么建议?
-D
错误,与递归,你在方法中调用方法本身...我没有看到你这样做。 – 2010-11-15 19:31:58
假设你只有一个项目在你的数组中。然后lower == upper,你永远不会进入while循环。 – 2010-11-15 19:33:38
这与递归无关 – Falmarri 2010-11-15 19:40:24