Краткий ответ смотрите здесь: https://wiki.python.org/moin/TimeComplexity
Без аргументов, чтобы вытолкнуть его O (1)
С аргументом для pop:
- Среднее время Сложность O (k) (k представляет число, переданное в виде
аргумент для поп
- Амортизированная сложность времени наихудшего случая O (k)
- В худшем случае сложность времени O (n)
Средняя сложность по времени:
Каждый раз, когда вы вводите значение, временная сложность этой операции
O (n - k).
Например, если у вас есть список из 9 элементов, то удаление из конца списка - это 9 операций и удаление из начала
список состоит из 1 операции (удаление 0-го индекса и перемещение всех
другие элементы к их текущему индексу - 1)
Поскольку n - k для среднего элемента списка равно k операциям, среднее значение можно сократить до O (k).
Еще один способ подумать об этом - представить, что каждый индекс был удален из вашего списка из 9 элементов один раз. Это было бы в общей сложности 45 операций. (9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 = 45)
45 равно O (nk), и поскольку операция pop выполнялась O (n) раз, вы делите nk на n, чтобы получить O (k)
Амортизированная сложность времени наихудшего случая
Представьте, что у вас снова есть список из 9 предметов. Представьте, что вы удаляете каждый элемент списка, и возникает наихудший случай, и каждый раз вы удаляете первый элемент списка.
Поскольку список сокращается на 1 каждый раз, количество операций уменьшается с 9 до 1.
9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 = 45. 45 равно O (nk). Поскольку вы выполнили 9 операций, а 9 - это O (n), чтобы рассчитать амортизированный наихудший сценарий, вы выполняете O (nk) / O (n), что равно O (k)
Указание значения O (n) для средней и амортизированной сложности наихудшего времени также является своего рода правильным. Обратите внимание, что O (k) приблизительно равно O (1 / 2n), а падение постоянной равно O (n)
Наихудший случай сложности
- В отличие от амортизированной временной сложности в наихудшем случае вы не учитываете состояние структуры данных и просто думаете о худшем случае для любой отдельной операции.
- В этом случае наихудшим случаем является удаление 1-го элемента из списка, что является O (n) раз.
Вот что я должен обдумать, если это поможет: