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的时间复杂度是否与一般情况不同?
谢谢!
答案 0 :(得分:1)
正如上面的评论所指出的,python是一种记录良好的语言,必须始终首先引用文档。
根据docs,
回答问题set对象是不同的可哈希对象的无序集合。
无序意味着使用任何方法(内置或非内置)评估所有元素中的最大值或最小值至少需要一个人查看每个元素,这意味着O(n)复杂度最多。
除此之外,python的max和min函数遍历每个元素,并且在所有情况下都是O(n)。 您可以随时查找source code。