找到两点之间的最小距离

时间:2016-06-26 04:37:56

标签: java algorithm

我有 M 点,它们通过 N 行连接。下一个 N 输入行包含不同点对之间的距离。我想找到每对点之间的最小距离之和。

示例输入:

char

示例输出:

5 6
1 2 23
1 3 5
2 3 3
2 4 12
3 4 5
4 5 2

解释

enter image description here

d(1,2)= 5 + 3 = 8

d(1,3)= 5

d(2,3)= 3

d(2,4)= 3 + 5 = 8

d(3,4)= 5

d(4,5)= 2

sum = 8 + 5 + 3 + 8 + 5 + 2 = 31

修改1:

我已使用以下代码将加权图转换为附加矩阵:

31

现在我怎么能找到任意两点之间的最短距离,因为存在连接它们的线?

1 个答案:

答案 0 :(得分:1)

使用Floyd-Warshall构建所有对最短路径的矩阵。现在添加矩阵中的所有值并除以2,因为您将计算每个距离两次。

维基页面上的伪代码足以将其转换为java。