> Какова алгоритмическая сложность добавления элемента в начало и конец списка в Python (Python)
Уровень: senior · Роль: backend · Язык: Python · Категория: Технические вопросы
Компании: Домклик, TrueEngineering, Сбер
Стек: Python
> Пример ответа
Добавление элемента в конец списка (метод append) работает в среднем за O(1) - амортизированная константа. Это достигается за счёт того, что список хранит элементы в динамическом массиве: при заполнении выделяется больший блок памяти (обычно с запасом ~12.5%), и копирование происходит редко.
Добавление элемента в начало списка (например, list.insert(0, x)) работает за O(n), где n - длина списка. Все существующие элементы сдвигаются на одну позицию вправо, что требует линейного количества операций копирования.
Пример:
PYTHONlst = [1, 2, 3]lst.append(4) # O(1) - быстроlst.insert(0, 0) # O(n) - медленно на больших списках
Поэтому для частых вставок в начало лучше использовать collections.deque, у которого вставка в начало и конец - O(1).
> Похожие задачи по Python
Какие стеки технологий вы использовали
Работал ли ты с Docker и Docker Compose
В чем разница HTTP методов GET, POST, PUT, DELETE и когда их использовать
Что можно увидеть в explain-плане запросов в Postgres
> Похожие задачи по backend
Какие стеки технологий вы использовали
Работал ли ты с Docker и Docker Compose
В чем разница HTTP методов GET, POST, PUT, DELETE и когда их использовать
Что можно увидеть в explain-плане запросов в Postgres
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью