假设没有负边缘。
弗洛伊德·沃绍(Floyd-Warshall)的运行时间恒定为O(V ^ 3)。贝尔曼·福特(Bellman Ford)的运行时最差情况为O(VE),但是最理想的情况为O(E)。
因此,为每个单独的节点运行BF时,运行时的最差情况为O(EV ^ 2),但是运行时的最佳情况为O(VE),这是正确的吗?
答案 0 :(得分:0)
在几乎所有情况下,贝尔曼·福特都会比弗洛伊德·沃歇尔慢。如果图形是树,则E = V
,并且两者将是相同的V^3
。但是,E
非常容易变大。对于完整的图,E
最多可以达到V^2
,其中仅一个节点上的BF将花费整个图上的FW所需的时间。
当Dijkstra能够解决E+VlogV
中的相同问题时,几乎没有理由使用BF,在除了简单树之外的所有情况下,它都比VE
更快。