时间复杂度min,max on sets

时间:2018-03-11 05:55:22

标签: python

min,max具有O(N)时间复杂度,因为它们必须遍历给定的列表/字符串并检查每个索引以找到min / max。但我想知道如果在一组上使用min,max的时间复杂度是多少?例如:

s = {1,2,3,4} # s is a set

使用min / max得到:

min(s) = 1
max(s) = 4

由于集合不使用列表和字符串之类的索引,而是使用可以直接访问的存储桶来操作,因此min / max的时间复杂度是否与一般情况不同?

谢谢!

1 个答案:

答案 0 :(得分:1)

正如上面的评论所指出的,python是一种记录良好的语言,必须始终首先引用文档。

根据docs

回答问题
  

set对象是不同的可哈希对象的无序集合。

无序意味着使用任何方法(内置或非内置)评估所有元素中的最大值或最小值至少需要一个人查看每个元素,这意味着O(n)复杂度最多。

除此之外,python的max和min函数遍历每个元素,并且在所有情况下都是O(n)。 您可以随时查找source code