Bellman-Ford 算法

给定有向图 G,我们经常想要找到从给定节点 A 到图中其余节点的最短距离。 Dijkstra 算法是用于找到最短路径的最着名的算法,但是仅当给定图的边权重是非负的时它才起作用。然而,贝尔曼 - 福特旨在找到来自给定节点(如果存在)的最短路径,即使一些权重是负的。请注意,如果图形中存在负循环,则可能不存在最短距离(在这种情况下,我们可以绕过循环,从而产生无限小的总距离)。 Bellman-Ford 还允许我们确定这种循环的存在。

该算法的总复杂度为 O(V*E),其中 V - 是顶点数和 E 边数