【发布时间】:2020-12-12 02:43:03
【问题描述】:
如果你在 python 中这样初始化一个列表:
编辑:这是伪代码
l = list([1,2,3,4....N])
或
l = list(range(N))
或
l = list("string of len N")
这些操作的时间复杂度是 O(N) 吗?因为,您需要遍历所有项目,直到 N 并将其附加到列表中。追加是 O(1)。因此,它是 N*O(1) = O(N)。
想法?谢谢。
【问题讨论】:
-
谢谢大家。这些线程表明它是 O(N),这是我推测的。但他们没有解释原因。谁能找到具体的证据,为什么在 python 中创建一个大小为 N 的列表将是 O(N)?
-
证明就是你在问题中写的:
append是 O(1),你做了 n 次。从技术上讲,append只是 O(1) 的摊销时间,但这足以让证明工作。
标签: python algorithm data-structures time-complexity