Задать вопрос
@zlodiak

Какова сложность операции вставки у deque?

Скажите пожалуйста, я правильно понимаю, что в python3 у очереди из collections.deque при вставке значения в середину очереди сложность вычисляется по O(1)?

Я так думаю потому что любая очередь это односвязный или двусвязный список. таким образом при вставке не требуется перебирать подряд все элементы, а просто создать элемент и привязать его указатели на соседние элементы
  • Вопрос задан
  • 866 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
> https://wiki.python.org/moin/TimeComplexity

> A deque (double-ended queue) is represented internally as a doubly linked list. (Well, a list of arrays rather than objects, for greater efficiency.) Both ends are accessible, but even looking at the middle is slow, and adding to or removing from the middle is slower still.

из этого следует, что O(N). И даже если б это был обычный одно или дву связный список, то элемент, куда вставлять, ещё надо найти, а это O(N), если передаётся по индексу, а не указателю.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
tumbler
@tumbler Куратор тега Python
бекенд-разработчик на python
https://wiki.python.org/moin/TimeComplexity
collections.deque
A deque (double-ended queue) is represented internally as a doubly linked list. (Well, a list of arrays rather than objects, for greater efficiency.) Both ends are accessible, but even looking at the middle is slow, and adding to or removing from the middle is slower still.

TLDR: "В середину" всё плохо.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Greenway Global Новосибирск
от 150 000 ₽
SPA2099 Москва
До 100 000 ₽
HR Prime Москва
от 300 000 до 3 800 000 ₽