在找到每个节点到其他节点的最短距离时,Bellman Ford 的 n 次调用是否会比 Floyd-Warshall 更快?

Would n calls of Bellman Ford be faster than Floyd-Warshall when finding the shortest distance from each node to each other node?

假设没有负边。

Floyd-Warshall 的恒定运行时间为 O(V^3)。 Bellman Ford 的最坏情况运行时间为 O(VE),但最佳情况为 O(E)。

所以 运行 每个单独节点的 BF 的最坏情况运行时间为 O(EV^2),但最佳情况为 O(VE),这是正确的吗?

几乎在所有情况下,Bellman Ford 都会比 Floyd-Warshall 慢。如果图是一棵树,那么 E = V,两者将是相同的 V^3。但是,E 很容易变大。 E 在完整图的情况下可以达到 V^2,其中一个节点上的 BF 将与整个图上的 FW 一样长。

当 Dijkstra 可以解决 E+VlogV 中的相同问题时,很少有理由使用 BF,在除简单树以外的所有情况下,它都比 VE 更快。