Урок 14 - Алгоритмы поиска. Задача поиска. Последовательный поиск. Бинарный поиск. Модификации бинарного поиска
Бинарный поиск
В задачах, когда нужно искать элемент в последовательности чисел (например в списке или массиве), проще всего использовать линейный поиск. То есть последовательно перебрать все элементы сравнивая их с искомым значением. Такой алгоритм достаточно прост в написании и понимании, но на практике при работе с большими наборами данных оказывается достаточно затратен с точки зрения времени выполнения. Для сокращения времени работы программы можно использовать вместо линейного поиска алгоритм бинарного поиска...
Бинарный поиск
Первый алгоритм, который я бы хотел рассмотреть - это бинарный поиск. Почему? Я считаю, что это один из самых простых для понимания алгоритмов. Свойства:
На одном из собеседований мне дали следующую задачу, которую и рассмотрим в качестве примера, чтобы разобрать логику бинарного поиска. Задача. У нас есть дом из 10 этажей. У нас есть кирпичи. Мы хотим найти максимальный этаж, при котором кирпич не разобьётся от падения. Всего у нас 3 попытки. Этот эксперимент я ставил в детстве на заброшке, мой...