[英]Is there a way to find minimum element in a set in less than O(n) time?
我正在尝试使用 min() 从 python 中的集合中获取最小值。
约束:
我的集合有 510650 个元素。 current = min(unvisited, key=lambda node: distanceTo[node])
。
字典的名称是'distanceTo'。
集合的名称是“未访问”。
如果我正确理解 big-o 符号,我不相信。
“O(n) 意味着处理时间随着输入的大小线性增加”
如果您从逻辑上考虑,对于添加到未排序列表中的每个项目,您需要比较另一个元素以查看它是否满足您的特定要求(在您的情况下,具有最小值)
https://en.wikipedia.org/wiki/Time_complexity#Linear_time
编辑:当然,如果某人只是想在列表中找到一个特定值,并且该值恰好在他开始搜索的开头,那么它会在不到 O(n) 的时间内找到; 可能不相关,但我觉得值得一提。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.