他们的思想都是逐步的在原路径里增加顶点,若加入中间顶点后路径长度变短,则修改。否则就维持原路径
Dijkstra算法:总是去求从已知顶点到终点的直达最短路径
初始是S={v0} T={其余顶点}
D[i]是一个数组,它记录了初始顶点到其余各顶点的最短直达路径
(1)选择一个点作为出发点加入S;记录S到T内各顶点的直达距离;为D[i]
(2)选择(1)内直达距离最小的顶点加入S
(3)再次记录通过S到T内各定点的距离。如果有比D[i]小的,则更D[i];继续选择一个最小 的距离的顶点加入S;
最后D[i]的结果就是[13,8,13,19,21,20]依次代表从V0出发到V1,V2,V3,V4,V5,V6 的最短距离
弗洛伊德算法:所有顶点间的最短路径;