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

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

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

Я так думаю потому что любая очередь это односвязный или двусвязный список. таким образом при вставке не требуется перебирать подряд все элементы, а просто создать элемент и привязать его указатели на соседние элементы
  • Вопрос задан
  • 809 просмотров
Подписаться 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: "В середину" всё плохо.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
31 янв. 2025, в 09:18
10000 руб./за проект
31 янв. 2025, в 08:29
1000 руб./в час
31 янв. 2025, в 06:03
9999999 руб./за проект