Dijkstra : 从点v0开始,不断把距V0距离最小的点拉进超点(权重值一定要是正的)
Floyd : 如果i->k->j的距离比直接i->j要短的话,更新一下dist的距离和path的路径
Dijkstra
从点v0开始,不断把距V0距离最小的点拉进超点(注意:权重值一定要是正的)
1 | |
Floyd
如果i->k->j的距离比直接i->j要短的话,更新一下dist的距离和path的路径。
(特别注意:关于循环的顺序,k一定在最外层循环,不然程序会出现差错,以下给出解释:k在最外层保证了每次k变动后会遍历图上所有的点以达成完备的更新。)
1 | |