有2d数组,上面标有点 - 就像在第一张图片中一样。我要做的是找到该地图上所有点之间的连接(这样你就可以从任何一点到达所有其他点)。所有边的长度之和必须可能是最小的。
输入:
(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
答案 0 :(得分:3)
将输入的点集视为完全连通的图形,将一对点之间的距离作为边缘权重。然后找到图的最小生成树。
Kruskal的算法特别容易:
如果速度有问题,可以使用各种技术来快速实现这一目标。