这是一个二维数组,上面标有点--就像第一张图片一样。我要做的是找到地图上所有点之间的连接(这样你就可以从任何点旅行到所有其他点)。所有边的长度之和必须尽可能最小。
输入:
(0, 0) (5, 5) (5, 1) (4, 4) (1, 5) (2, 4) (2, 1) // 1st,2nd,3rd city ...
输出:
1-7, 7-3, 7-6, 6-5, 6-4, 4-2
发布于 2013-01-14 02:14:30
将输入点集合视为一个完全连接的图,将两个点之间的距离作为边权重。然后找出图的最小生成树。
Kruskal的算法特别简单:
添加边
如果速度是个问题,您可以使用各种技术来快速完成此任务。
https://stackoverflow.com/questions/14306474
复制相似问题