【发布时间】:2022-01-09 01:51:54
【问题描述】:
我正在尝试使用 min() 从 python 中的集合中获取最小值。
约束:
- 我正在使用一个字典,它将一个节点映射到一个值,但这个字典会不断更新。
- 我正在不断减小集合的大小。
我的集合有 510650 个元素。
current = min(unvisited, key=lambda node: distanceTo[node]).
-
字典名称是'distanceTo'。
-
集合的名称是“未访问”。
【问题讨论】:
-
如果没有排序的数据结构,您必须查看每个元素才能找到最小值
-
一个python集是完全未排序的,所以没有。当然,有一些方法可以创建有序集合(这是 c++ 中的默认设置),这意味着添加或查找元素需要更长的时间,但您可以在 O(1) 中获得最小值。
-
更新
distanceTo时为什么不更新current? -
如果你想为几何 TSP 做最近邻之类的事情,请参阅this question 了解一些想法。
标签: python python-3.x set min