Поисковой алгоритм, который последовательно делит пополам заранее отсортированный массив данных для обнаружения нужного элемента, называется двоичный поиск.
Давайте рассмотрим, как работает этот алгоритм:
- Предварительная сортировка: Для того чтобы использовать двоичный поиск, массив данных должен быть отсортирован по возрастанию или убыванию.
- Определение границ: Устанавливаются две границы: левая (left) и правая (right). Изначально левая граница равна 0 (первый элемент массива), а правая граница - длине массива минус один (последний элемент).
- Цикл поиска:
- Пока левая граница не превышает правую, выполняем следующие шаги:
- Находим средний элемент (middle) массива, используя формулу: middle = (left + right) / 2.
- Сравниваем значение среднего элемента с искомым элементом:
- Если средний элемент равен искомому, то элемент найден, и алгоритм завершен.
- Если искомый элемент меньше среднего, то сужаем поиск, устанавливая правую границу на middle - 1.
- Если искомый элемент больше среднего, то сужаем поиск, устанавливая левую границу на middle + 1.
- Завершение: Если левая граница превышает правую, это означает, что элемент не найден в массиве.
Двоичный поиск является очень эффективным алгоритмом с временной сложностью O(log n), что делает его предпочтительным выбором для поиска в отсортированных массивах.