【发布时间】:2020-04-10 11:21:50
【问题描述】:
在阅读了 Dijkstra 和 Bellman-ford 之后,我有一个疑问,为什么 Dijkstra 在一次迭代中给出答案,而 bellman ford 进行 n-1 次迭代?
【问题讨论】:
-
你读过标签上的cmets吗?答案已经有了。
-
由于负边缘?
-
正确。考虑一个负边缘的值可能是负十亿,大于所有正权重的总和。在检查完所有边之前,您不知道最大的负节点是什么,以及它将如何影响您的结果。
-
Bellman-Ford 利用了这样一个事实,即从图中任意顶点
i到任意顶点j的简单路径最多需要n-1跳,其中n是图中的顶点总数。
标签: data-structures dijkstra bellman-ford