Встречается на собеседованиях • сегодня

Какие знаешь алгоритмы бинарного поиска

Бинарный поиск — алгоритм поиска элемента в отсортированном массиве, работающий за O(log n). Основные варианты:

  1. Классический бинарный поиск — находит точное совпадение:
java
int binarySearch(int[] arr, int target) {
    int left = 0, right = arr.length - 1;
    while (left <= right) {
        int mid = left + (right - left) / 2;
        if (arr[mid] == target) return mid;
        if (arr[mid] < target) left = mid + 1;
        else right = mid - 1;
    }
    return -1;
}
  1. Поиск первого вхождения (левая граница):
java
int leftBound(int[] arr, int target) {
    int left = 0, right = arr.length;
    while (left < right) {
        int mid = left + (right - left) / 2;
        if (arr[mid] < target) left = mid + 1;
        else right = mid;
    }
    return left;
}
  1. Поиск последнего вхождения (правая граница):
java
int rightBound(int[] arr, int target) {
    int left = 0, right = arr.length;
    while (left < right) {
        int mid = left + (right - left) / 2;
        if (arr[mid] > target) right = mid;
        else left = mid + 1;
    }
    return left - 1;
}

Также существуют модификации для поиска в бесконечных массивах, вращающихся массивах и т.д.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы