Алгоритм двоичного поиска. Почему неправильно работает алгоритм?

public static int binarySearch(int[] numbers, int left, int right, int key) {
        if (left <= right) {
            int mid = (left + right) / 2;
            int midVal = numbers[mid];
            if (midVal < key)
                return binarySearch(numbers, left, mid - 1, key);
            else if (midVal > key)
                return binarySearch(numbers, mid + 1, right, key);
            else
                return mid;
        }
        return -1;
    }

Скажите, почему иногда неправильно работает алгоритм?
  • Вопрос задан
  • 136 просмотров
Решения вопроса 1
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
Знаки в условиях перепутаны.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы