Двоичный поиск — это алгоритм поиска элемента в отсортированном массиве, который последовательно делит диапазон поиска пополам для быстрого нахождения искомого значения. ru.ruwiki.ru
Алгоритм работы: ru.ruwiki.ru
- Инициализация границ поиска. ru.ruwiki.ru Устанавливаются начальные значения индексов — низший (low) и высший (high). ru.ruwiki.ru
- Определение среднего элемента. ru.ruwiki.ru Вычисляется средний индекс. ru.ruwiki.ru
- Сравнение со средним элементом: ru.ruwiki.ru
- Если значение по индексу mid равно ключу, то поиск завершается. ru.ruwiki.ru
- Если ключ меньше значения в mid, продолжается поиск в левой половине массива. ru.ruwiki.ru
- Если ключ больше значения в mid, продолжается поиск в правой половине массива. ru.ruwiki.ru
- Обновление границ и повтор. ru.ruwiki.ru Шаги 2–3 повторяются, пока низший индекс не превысит высший. ru.ruwiki.ru
Пример работы: swiftbook.org
Есть отсортированный массив чисел: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]. swiftbook.org Нужно найти в нём число 5. swiftbook.org
- Сначала берётся средний элемент массива, в данном случае это число 6. swiftbook.org
- Затем сравнивается с искомым значением. swiftbook.org Так как 6 больше 5, сужается область нахождения до левой половины массива: [1, 2, 3, 4, 5]. swiftbook.org
- Снова берётся средний элемент, в данном случае это число 3, и сравнивается с искомым значением. swiftbook.org Так как 3 меньше 5, сужается область нахождения до правой половины массива: [4, 5]. swiftbook.org
- Процесс продолжается до тех пор, пока не будет найден искомый элемент или пока не останется только один элемент для сравнения. swiftbook.org
В случае, если искомый элемент не найден, возвращается информация об отсутствии такого элемента в массиве. swiftbook.org