Встречается на собеседованиях • сегодня

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

Для быстрого поиска в Python оптимальны:

  1. Множества (set) и словари (dict) — используют хеш-таблицы, поиск за O(1).
    Пример:
    python
    data = {1, 2, 3}  # set
    if 2 in data:  # O(1)
        print("Found")
  1. Сортированные списки с бинарным поиском — O(log n).
    Пример:
    python
    import bisect
    data = [1, 2, 3, 4]
    idx = bisect.bisect_left(data, 3)  # O(log n)

Выбор зависит от контекста:

  • set/dict — если важен порядок вставки (Python 3.7+ сохраняют его) и частые проверки наличия.
  • bisect — если данные уже отсортированы или нужен доступ по индексу.

Для сложных структур (например, поиск по диапазону) используют двоичные деревья (библиотеки bintrees, sortedcontainers).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы