gpt4 book ai didi

python - 在列表末尾插入是否具有 O(1) 时间复杂度?

转载 作者:行者123 更新时间:2023-12-02 19:41:29 26 4
gpt4 key购买 nike

appendinsert 在列表末尾有区别吗?列表末尾的 insert 是常数时间操作吗?

nums = [1, 2, 3]
nums.append(4) # Time complexity: O(1)
nums.insert(len(nums), 5) # Time complexity: O(?)

根据TimeComplexity在 Python Wiki 的文章中,append 的平均情况是 O(1),而 insert 的平均情况是 O(n)。然而,在 Python tutorial ,有人提到:

... and a.insert(len(a), x) is equivalent to a.append(x).

我不确定这里的“等效”是指“功能等效”还是“时间复杂度等效”。有人知道吗?

最佳答案

插入列表的最差时间复杂度是O(n-i),其中n是列表的长度,i是索引您要插入的位置。

因此,如果您在最后一个索引处插入,则它会变成 O(1)

这篇文章可能会帮助您更好地理解:

https://yourbasic.org/algorithms/time-complexity-arrays/ .

关于python - 在列表末尾插入是否具有 O(1) 时间复杂度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60050808/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com