Но даже когда элемент , моя функция возвращает -1 .
code:
:
:
:
:
.
Код: Выделить всё
public int binarySearch(int[] arr, int target) {
int left = 0, right = arr.length;
while (left < right) {
int mid = (left + right) / 2;
if (arr[mid] == target) return mid;
else if (arr[mid] < target) left = mid + 1;
else right = mid - 1;
}
return -1;
}
// Test
int[] arr = {1, 3, 5, 7, 9};
int target = 5;
int result = binarySearch(arr, target); // returns -1, but 5 exists at index 2
Я ожидал, что метод вернуть 2 , потому что 5 присутствует в индексе 2.
, что я получил:
. массив. Что нужно исправить?
Подробнее здесь: https://stackoverflow.com/questions/797 ... ent-exists