弗洛伊德最短路径算法理解

编程入门 行业动态 更新时间:2024-10-20 05:31:56

<a href=https://www.elefans.com/category/jswz/34/1769864.html style=弗洛伊德最短路径算法理解"/>

弗洛伊德最短路径算法理解

(涉及到前面讲过的 warshall 算法)  floyd 要求图中每个定点之间的最短路径,其比迪杰斯特拉算法在这一问题上要先进的地方就在于各个点之间的最短路径是同步更新的。在 i 和 j 中间依次加入从 0 到 n-1 的点,如果设加入的点为 k ,当 i->k (之前算好的 i 到 k 的最短路径) +k->j 小于原来的 i->j 时,更新 i->j 。最后得到每两个点之间的最短路径。具体算法步骤看书上,我重点讲下面的东西。   假设 0->6->1->2 为 0 到 6 的最短路径,那么利用贪心算法的思想 0->6 一定为 0 到 6 的最短路径,路径上每一个点到下一个点都走的相互间的最短路径,当 k 从 0 到 n-1 依次作为中转点时,一定可以找到两个点之间只通过一个点中转后的最短路径,其中若 k==i 或 k==j 可看做没有中转,所以 0 到 1 的最短路径 0->1 就可以替换 0->6->1 (因为 6 是那个最小路径中转点),所以 0->6->1->2 变为 0->1->2 ,然后以 1 作为中转点时又缩短为 0->2 ,这样就可以证明该路径确实为 0 到 2 的最短路径,因为每一个点都会作为中转点,因此两个点之间的最短路径都能利用缩短思想证明能求的出来,这里的缩短思想和 warshall 算法真的好像。

更多推荐

弗洛伊德最短路径算法理解

本文发布于:2024-02-06 17:55:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1750721.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:弗洛伊德   最短   算法   路径

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!