Python中列表到集合转换的渐近复杂性

Python中列表到集合转换的渐近复杂性,python,list,set,big-o,complexity-theory,Python,List,Set,Big O,Complexity Theory,关于这一点已经有了一个答案,答案是渐近复杂性是开的。但是我观察到,如果一个未排序的列表被转换成一个集合,则可以按排序顺序打印出该集合,这意味着在这些操作中间的某个点,该列表已经被排序。然后,由于任何比较排序都有Omegan lg n的下界,因此该操作的渐近复杂性也应为Omegan lg n。那么,这个操作的复杂性到底是什么呢?Python中的集合是一个集合,所以您看到的任何顺序都是偶然的。由于dict和set在CPython中都是作为哈希表实现的,所以插入是平均情况O1,最坏情况O1 所以列表集

关于这一点已经有了一个答案,答案是渐近复杂性是开的。但是我观察到,如果一个未排序的列表被转换成一个集合,则可以按排序顺序打印出该集合,这意味着在这些操作中间的某个点,该列表已经被排序。然后,由于任何比较排序都有Omegan lg n的下界,因此该操作的渐近复杂性也应为Omegan lg n。那么,这个操作的复杂性到底是什么呢?

Python中的集合是一个集合,所以您看到的任何顺序都是偶然的。由于dict和set在CPython中都是作为哈希表实现的,所以插入是平均情况O1,最坏情况O1

所以列表集。。。始终打开并设置列表。。。这是一个普通的例子


您可以浏览集合的源代码。

将列表转换为集合仍处于启用状态。打印出来是另一个操作。似乎我运行的两个转换都返回了排序集。