当找到每个节点到另一个节点的最短距离时,贝尔曼·福特的呼叫是否会比弗洛伊德·沃歇尔更快?

时间:2018-08-02 18:15:30

标签: shortest-path floyd-warshall bellman-ford

假设没有负边缘。

弗洛伊德·沃绍(Floyd-Warshall)的运行时间恒定为O(V ^ 3)。贝尔曼·福特(Bellman Ford)的运行时最差情况为O(VE),但是最理想的情况为O(E)。

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

1 个答案:

答案 0 :(得分:0)

在几乎所有情况下,贝尔曼·福特都会比弗洛伊德·沃歇尔慢。如果图形是树,则E = V,并且两者将是相同的V^3。但是,E非常容易变大。对于完整的图,E最多可以达到V^2,其中仅一个节点上的BF将花费整个图上的FW所需的时间。

当Dijkstra能够解决E+VlogV中的相同问题时,几乎没有理由使用BF,在除了简单树之外的所有情况下,它都比VE更快。