我必須實現二進制搜索方法,它發現值是否在數組中。我必須使用遞歸。Java二進制搜索遞歸
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
感謝。
遞歸調用,因爲存在你什麼都不返回的路徑。但該方法應該'返回'的東西.. – Maroun
不應該是'return searchBin(array,x,l,r); '? –