【发布时间】:2018-10-01 11:52:14
【问题描述】:
在 Python 中“冻结”一个集合的计算复杂度是多少?
比如第二行在
a = {1,2,3}
b = frozenset(a)
需要 O(n) 时间?还是只是在恒定时间内创建的“视图”?
【问题讨论】:
-
这不是一个视图,因为如果您稍后将
.add(..)某些内容发送到a,b不会更新。 -
结构在参数的可迭代元素的数量上是线性的。
-
所以构造是O(n)。对于单个元素,插入可能会像 O(n) 一样糟糕,但 amoritized 成本是 O(1)。
-
为什么不简单地创建一个大集合并尝试一下呢?从单个测试中应该很明显。
标签: python set time-complexity frozenset