方法:求解边上带有负值的单源最短路径问题,从源点逐次通过其他顶点,以缩短到达终点的最短路径长度。
限制条件:不能包含权值总和为负值回路(负权值回路),不然会在一个回路中一直负循环下去
0-1的最短距离可以无限-2+1-2+1...趋近负无穷
理解一:Bellman-Ford(贝尔曼-福特)
构建图的邻接矩阵Edge[ i ][ j ]=w,表示从 i 到 j 权值为w,构造一个最短路径长度数组序列dist (1) [u],dist(2) [u] …, dist (n-1)[u]。
dist (1) [u]表示从源点到终点U的只经过一条边的最短路径长度,dist 2 [U] 表示从源点V最多经过两条边到达终点U的最短路径,最终计算出dist n-1 [U]。
k |
dist(k)[0] |
dist(k)[1] |
dist(k)[2] |
dist(k)[3] |
dist(k)[4] |
dist(k)[5] |
dist(k)[6] |
1 |
0 |
6 |
5 |
5 |
|