在 python 中,当我将我的集合转换为列表时,这样的任务的算法复杂度是多少?它只是对集合进行类型转换,还是需要将项目复制到不同的数据结构中?发生了什么?
我很想知道复杂性是恒定的,就像 Python 中的很多东西一样。
在 python 中,当我将我的集合转换为列表时,这样的任务的算法复杂度是多少?它只是对集合进行类型转换,还是需要将项目复制到不同的数据结构中?发生了什么?
我很想知道复杂性是恒定的,就像 Python 中的很多东西一样。
大多数情况下的时间复杂度为 O( n ),其中n是集合的大小,因为:
但是,有一个警告,即 Python 的集合具有基于集合对象具有的最大大小的底层数组大小,不一定基于其当前大小;这是因为从集合中删除元素时,底层数组不会重新分配到较小的大小。如果一个集合很小但曾经大得多,那么迭代它可能比 O( n ) 慢。
复杂性是线性的,因为所有引用都被复制到新容器中。但只有引用和是而不是对象 - 它对于大对象可能很重要。