algorithm - 最短路径 : Bellman-Ford vs. 约翰逊

标签 algorithm shortest-path

我很难理解 Johnson Algorithm 的用处.我认为这个问题对于有这方面知识的人来说一定听起来很愚蠢,但我想不通。根据维基百科,约翰逊算法使用贝尔曼福特算法将边的权重转换为非负权重,然后使用 Dijkstra 算法找到最短路径。但是贝尔曼福特算法也是一种寻找最短路径的算法。为什么我们不直接使用从 Bellman Ford 算法获得的最短路径?

最佳答案

Bellman-Ford 算法寻找从单个源到所有图形顶点的最短路径(“单源最短路径”)。约翰逊算法找到从每个顶点到每个其他顶点的最短路径(“所有对最短路径”),因此它等效于从图中每个可能的起始顶点运行 Bellman-Ford。

关于algorithm - 最短路径 : Bellman-Ford vs. 约翰逊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5316609/

相关文章:

Java - 在对象列表中搜索 2 个日期之间的日期

algorithm - 使用 Dijkstra 算法的最大利润

javascript - 在大量句子中查找 n-gram 频率

php - 将字节数据编码成数字

java - 计算Java中每小时出现的次数

algorithm - 用A*算法找出几条最短路径

algorithm - 单源最短双子路径

java - 遍历树找到节点

algorithm - Sedgewick 和 Wayne 的 Bellman ford 基于队列的方法 - 算法,第 4 版

c - All-pairs 最短路径问题的最快实现?