Для входного двоичного поиска (2, A, 9), где A = {2,6,7,7,11,15,25,37,45}, программа передает вывод " Not Present ", когда он должен дать« Present ». Что я делаю неправильно?Двоичный поиск, дающий неправильный вывод
Вот мой код:
String binarySearch(int x, int[] A, int n)
{
if(n==0)
return ("Not present");
else
{
int mid = n/2;
if(x==A[mid])
return ("Present");
else if (x<A[mid])
binarySearch(x, Arrays.copyOfRange(A,0,mid),mid);
else
binarySearch(x, Arrays.copyOfRange(A,mid,n),n-mid);
return ("Not present");
}
}
Потому что ваша последняя строка не возвращает 'Не present' независимо от того, что возвращать рекурсивные вызовы. – tkausl
Используйте фигурные скобки, и у вас не будет таких ошибок. – eldo
Просто понял. Кажется, такой глупый вопрос сейчас. Спасибо! – kudesiaji