【发布时间】:2022-01-19 11:23:42
【问题描述】:
我相信 similar question 已被要求用于 Java,但我不确定这是否同样适用于 Python,因为我们没有明确使用 new 关键字
对于这个特定的代码:
x = 5
while (x > 0):
arr = []
arr2 = []
arr.append(1)
arr2.append(2)
x -= 1
执行完这段代码后,会不会一共创建10个不同的list,空间复杂度O(10),还是只会创建2个list,空间复杂度O(2 )。 我知道整体空间复杂度仍然是 O(1),但只是想了解幕后发生了什么。
【问题讨论】:
-
O(2) = O(10) = O(1)。而且空间复杂度不仅仅取决于创建的列表的数量。
-
从技术上讲,您将获得 10 个列表,但除了最后两个之外,它们最终都会被垃圾回收
标签: python list while-loop space-complexity