Курс Python → Бинарный поиск
Алгоритм бинарного поиска — это эффективный метод поиска элемента в отсортированном массиве. Он основан на принципе «разделяй и властвуй», который позволяет быстро сузить область поиска. Для начала работы алгоритм принимает отсортированный список, в котором будет осуществляться поиск. Затем алгоритм постоянно сравнивает значение поиска с серединой массива.
В зависимости от результата сравнения, алгоритм либо сужает область поиска до левой или правой половины массива, либо находит искомый элемент. Этот процесс продолжается до тех пор, пока не будет найден искомый элемент или область поиска сузится до пустого массива. Благодаря этому непрерывному делению массива на две части, алгоритм обеспечивает логарифмическую временную сложность.
def binary_search(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1
Пример кода выше представляет функцию бинарного поиска на Python. Она принимает отсортированный массив и значение, которое необходимо найти в этом массиве. Функция последовательно сравнивает значение поиска с серединой массива и сужает область поиска до тех пор, пока не будет найден искомый элемент или область поиска не станет пустой. Если элемент найден, функция возвращает его индекс в массиве, в противном случае возвращается -1.
Другие уроки курса "Python"
- Нахождение самого длинного слова в списке с помощью max
- Структура данных deque в Python
- Преобразование данных в Python
- Python reversed() vs срез[::-1]
- Форматирование строк в Python
- Создание даты из строки ISO
- Модуль math: основные функции
- Удаление элемента по индексу в Python
- Обязательные аргументы в Python
- Списковое включение в Python
- Подсчет элементов в Python
- Создание комплексных чисел
- Списковое включение в Python
- Работа с zip-архивами в Python
- Конкатенация строк с методом join()
- Изменение объектов в Python
- Сортировка элементов с OrderedDict
- Конвертация изображений в PDF
- Управление экспортом элементов
- Python: цикл for и оператор присваивания
- Искажение имен в Python
- Экспорт данных с помощью writefile
- Операции с комплексными числами
- Форматирование объектов с модулем pprint
- Замеры производительности в Python
- Работа с модулем glob в Python
- Лямбда-функции в Python
- Многопоточность и асинхронное программирование в Python
- Метод hash в Python
- Retrying в Python: повторные вызовы
- Метаклассы в Python
- Подсчет часто встречающихся элементов
- Сортировка в Python
- Округление в Python
- Проверка окончания строки с помощью str.endswith()
- Метод lt для сортировки объектов
- Работа с файлами в Python
- Вычисление фазы комплексного числа
- Методы HTTP запросов в Flask
- Работа с парами ключ-значение
- Значения по умолчанию в Python
- Создание словарей с defaultdict
- Нан-рефлексивность в Python
- Подсчет частоты элементов с Counter
- f-строки в формате строк
- Работа с CSV файлами
- Логирование с Logzero: ротация файла















