\(Bellman-Ford\)
求单源最短路,可以判断有无负权回路(若有,则不存在最短路),
时效性较好,时间复杂度\(O(VE)\)。
\(Bellman-Ford\)算法是求解单源最短路径问题的一种算法。
单源点的最短路径问题是指:
给定一个加权有向图\(G\)和源点\(s\),对于图\(G\)中的任意一点\(t\),求从\(s\)到\(t\)的最短路径。
与\(Dijkstra\)算法不同的是,在\(Bellman-Ford\)算法中,边的权值可以为负数。
设想从我们可以从图中找到一个环路(即从\(s\)出发,经过若干个点之后又回到\(s\))且这个环路中所有边的权值之和为负。那么通过这个环路,环路中任意两点的最短路径就可以无穷小下去。如果不处理这个负环路,程序就会永远运行下去。 而\(Bellman-Ford\)算法具有分辨这种负环路的能力。