Какова сложность основных операций со списком Python?

Для Python list доступ по индексу — O(1), append и pop с конца — амортизированно O(1), вставка и удаление в середине — O(n). Поиск значения и проверка in также линейны.

Короткий ответ

Что ответить на собеседовании

Для Python list доступ по индексу — O(1), append и pop с конца — амортизированно O(1), вставка и удаление в середине — O(n). Поиск значения и проверка in также линейны.

Подробный разбор

Ответ с пояснениями

Для Python list доступ по индексу — O(1), append и pop с конца — амортизированно O(1), вставка и удаление в середине — O(n). Поиск значения и проверка in также линейны.

Срез длины k требует O(k) времени и новой памяти, копирование всего списка — O(n). Extend имеет стоимость O(k) добавляемых элементов с учётом перераспределений; сортировка в худшем случае O(n log n). Амортизированное время означает среднюю стоимость длинной последовательности операций, а не гарантию каждого append. Оценки предполагают ограниченную стоимость сравнения и присваивания ссылок; пользовательский eq или key может добавить собственные затраты.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее