Bellman-Ford 算法和 Dijkstra 算法同为解决单源最短路径的算法
Bellman-Ford 算法采用DP思想,时间复杂度为 O(V*E),Dijkstra 算法采用贪心策略,普通实现的时间复杂度为 O(V2)其中 V 为顶点数量,E 为边的数量。
Dijkstra有一个特点:一旦一个顶点添加到S中后,其最短路径长度不再改变,所以不适合含有非负权值的带权图求单源最短路径
对于带权有向图 G = (V, E),Dijkstra 算法要求图 G 中边的权值均为非负,而 Bellman-Ford 算法能适应一般的情况(即存在负权边的情况)
SPFA
Shortest Path Faster Algorithm)(队列优化)算法是求单源最短路径的一种算法,它还有一个重要的功能是判负环(在差分约束系统中会得以体现)