Performance 行李员的表现–;福特最短路径算法

Performance 行李员的表现–;福特最短路径算法,performance,algorithm,shortest-path,Performance,Algorithm,Shortest Path,我用一个队列实现了Bellman-Ford算法的解,并将其性能与Dijkstra算法进行了比较。他们非常接近,这对我来说是一个惊喜,因为贝尔曼-福特的复杂性是O(NM)。我知道复杂性是最坏的情况,但结果仍然令人惊讶。我搜索了一些关于贝尔曼-福特(Bellman-Ford)的信息,在Sedgewick中只找到了这句话,Java中的算法“在真实网络上,贝尔曼-福特(Bellman-Ford)算法通常以线性时间运行”。 你能给我解释一下贝尔曼-福特算法的性能表现吗?这里有一篇关于它的论文,非常直截了当

我用一个队列实现了Bellman-Ford算法的解,并将其性能与Dijkstra算法进行了比较。他们非常接近,这对我来说是一个惊喜,因为贝尔曼-福特的复杂性是O(NM)。我知道复杂性是最坏的情况,但结果仍然令人惊讶。我搜索了一些关于贝尔曼-福特(Bellman-Ford)的信息,在Sedgewick中只找到了这句话,Java中的算法“在真实网络上,贝尔曼-福特(Bellman-Ford)算法通常以线性时间运行”。
你能给我解释一下贝尔曼-福特算法的性能表现吗?

这里有一篇关于它的论文,非常直截了当()

贝尔曼福特的复杂性 算法取决于 边缘检查,或放松电话。 (注意这与 放松步骤指的是 实际执行的更改。) 如前所述,放松的次数 呼叫可以小于| V | E |带 BGL实现。事实上是这样 比地球上的| V | E |小得多 普通病例


列出了伪代码和进一步的分析。

如果你在C++中寻找两个算法的好实现,请参阅图Cib。代码如下: