Алгоритм бинарного поиска в Python
Источник: https://t.me/Python_libr/3541
Краткое содержание
Короткий пост о бинарном поиске: если есть отсортированный список и нужно найти элемент или вставить его, сохранив порядок, — бинарный поиск намного эффективнее линейного прохода (O(log n) против O(n)). В Python алгоритм встроен в стандартный модуль bisect.
import bisect
data = [1, 3, 5, 7, 9]
# Найти позицию для вставки числа 6
pos = bisect.bisect_left(data, 6) # -> 3
# Найти индекс элемента (если есть)
i = bisect.bisect_left(data, 5)
if i < len(data) and data[i] == 5:
print(f"Найдено на позиции {i}") # -> 2
Значимость
Напоминание об эффективном встроенном инструменте Python для работы с отсортированными коллекциями. bisect особенно полезен в задачах поиска, очередей с приоритетами и поддержания отсортированного порядка без полной пересортировки.
🧾 Транскрипт (формат)
📌 Алгоритм бинарного поиска
Источник: https://t.me/Python_libr/3541
📌 Алгоритм бинарного поиска
Если у вас есть отсортированный список и вам нужно найти элемент или добавить его так, чтобы порядок не изменился, взгляните в сторону этого алгоритма.
Он намного быстрее чем простой проход по списку (для тех, кто шарит: O(log n) vs O(n)) и, к тому же, встроен в Python (модуль bisect).
📕 Документация
#урок