下面的代碼是如何我試圖創建一個遞歸二進制方法..爪哇 - 遞歸二進制搜索幫助
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