Какие структуры данных выберешь, если требуется быстрый поиск

Python Middle Без компании
Какие структуры данных выберешь, если требуется быстрый поиск
Ответы
Для быстрого поиска в Python оптимальны: - **Множества (set)** и **словари (dict)** — используют хеш-таблицы, поиск за O(1). Пример: ``` data = {1, 2, 3} # set if 2 in data: # O(1) print("Found") ``` - **Сортированные списки** с **бинарным поиском** — O(log n). Пример: ``` import bisect data = [1, 2, 3, 4] idx = bisect.bisect_left(data, 3) # O(log n) ``` **Выбор зависит от контекста:** - **set/dict** — если важен порядок вставки (Python 3.7+ сохраняют его) и частые проверки наличия. - **bisect** — если данные уже отсортированы или нужен доступ по индексу. Для сложных структур (например, поиск по диапазону) используют **двоичные деревья (библиотеки `bintrees`, `sortedcontainers`)**.