Loading

dijkstra算法为什么不能有负边?

因为Dijkstra算法在计算最短路径时,不会因为负边的出现而更新已经计算过(收录过)的顶点的路径长度,

这样一来,在存在负边的图中,就可能有某些顶点最终计算出的路径长度不是最短的长度。

假设前两个数字表示顶点,第三个数字表示边的权值或路径长度,

考虑有三个顶点,三条边:(1,2,1),(1,3,2),(2,3,-3),最终计算出的路径长度是(1,2,1),(1,3,-2),但明显存在(1,2,-1)这条更短的路径。

 

posted @ 2019-07-25 16:43  拾月凄辰  阅读(5130)  评论(0编辑  收藏  举报