回顾了一下floyd算法

回顾了一下floyd算法

这个方法思想就是dp。

在最外围对每一个点依次循环,每一个点都要作为中间点将所有边松弛一遍,进行完之后第i个点和第j个点之间的最短路径就已经求出。

这个方法为什么是对的呢?

动态规划的重要特点就是,当前的结果作为前提,充分信任它,以它为基础得出后一步结果,最后得到最终结果。好像有点像数学归纳法

  • 在Floyd算法中的体现就是,在轮到每一个点作为中间点的时候,他可以肯定地认为他的前任们,也就是已经作为中间点的点已经被充分考虑了

  • 比如现在按顺序1,2,3...轮到点8作为中间点的轮次,他可以充分相信,他这一轮的松弛结果就是考虑1-8作为可能的中间点能产生的所有路径中最短的。

  • 以此类推,所有点都轮完的一轮松弛之后,就可以求出多源最短路径了。

Stay hungry
原文地址:https://www.cnblogs.com/agnes6/p/13646817.html