图中每个顶点之间的距离

时间:2015-02-01 10:00:20

标签: algorithm graph dijkstra vertices

是否有一种算法/有效方法来计算图形中每个顶点到所有其他顶点的距离。

与Dijkstra不同 - 我正在寻找一种方法来计算所有顶点到所有顶点的距离(不是一个顶点)。

谢谢!

1 个答案:

答案 0 :(得分:3)

如果距离"距离"你的意思是"最短距离"然后答案是"是"。对于所有对最短路径的非常流行的算法是Floyd Warshall Algorithm。它非常容易实现:

for k = 0 ; k != N ; k++
    for i = 0 ; i != N ; i++
        for j = 0 ; j != N ; j++
            W[i,j] = MIN(W[i,j], W[i,k]+W[k,j])
但是,它不适用于大规模稀疏图,因为它使用了邻接矩阵实现。它也不适用于具有负循环的图形,因为这些图形中的最短路径未定义。