Задать вопрос

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

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;
    }

Скажите, почему иногда неправильно работает алгоритм?
  • Вопрос задан
  • 142 просмотра
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Java-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Java-разработчик
    14 месяцев
    Далее
  • Нетология
    Java-разработчик с нуля
    12 месяцев
    Далее
Решения вопроса 1
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
Знаки в условиях перепутаны.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы