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