Двоичный поиск
Двоичный поиск или бинпоиск
(образовано от английского binary
) — базовый алгоритм, идеи которого используются в других алгоритмах.
Далее мы рассмотрим различные вариации данной концепции.
Пример детской задачи
Загадано число от до . Вы можете называть число, в ответ вы получаете ответы <
, >
, =
. Задача, угадать загаданное число за минимальное количество действий.
Это детская задача, возможно вы знаете её решение. Алгоритм по сути является бинпоиском по ответу. Первый раз вы спрашиваете про 50
, затем в зависимости от ответа, вы либо заканчиваете играть, или отрезок в котором есть загаданное число сокращается в длине в два раза. Например, искомый отрезок , после ответа <
на вопрос 50
, сократится до .
Так как длина отрезка в котором есть ответ после ответа <
или >
уменьшается в два раза, то количество вопросов в худшем случае равно