美文网首页
弗洛伊德算法理解(by:山上的神仙)

弗洛伊德算法理解(by:山上的神仙)

作者: 山上的神仙 | 来源:发表于2019-01-04 10:25 被阅读0次
图1

关于这个算法的个人理解(---下图都代表箭头→)

关于这个算法其实就是寻找最短路径,笔者是根据代码和图形来理解核心思想

关键点:如图中,v1→v2 权重为4,我们需要遍历v1去往每个点然后经历过某个点去往或者经历多个点去往v2的路径

可以代表为d[i][j]>d[i][k]+d[k][j] 此处的i j k我在此解释(个人想法)一下,许多人就是卡在这里不太理解。

其实这里套用了一个三层循环,可以理解为,图1中,v0→v1>v0→v0+v0+v1

k是最外层循环++,因为我们需要找,从v0出发,然后去往图中每一个顶点的路径,然后会经过v0点的最短路径,并且记录下来然后修正权重

i代表第二曾循环++,从k取值0开始,就从v0开始取每行的值,然后去j,取对应的列的值,是列列列!!!,

到这里,Ijk 就知道是干嘛的了,只要当,我们选择i去往j这个点的时候,经过k这个点 如果权重会小,则把i去往j这个路径修正为最小的点即

d[i][k]+d[k][j],并且记录下来我们曾经修改过的点。一直循环完,这里的算法时间是n的三次方.

至于路径数组是干嘛的,我们需要知道,是如何经过哪些点,获得最小路径的

因为我们生成路径数组的时候,是对应的下标生成的二维数组的值,看图1

注意观察(重点)路径数组的每个下标值必定等于该列的值,v0 = 0  v1 = 1

有了这个以后,我们只需要判断当前取出来的值是否等于该列的值,如果等于就代表经过了这个点,才走的最短路径

否则没有经过。

这个算法其实不难,核心点在于去往每个点我们所要经历的每个点。并且记录下来 很重要

相关文章

  • 弗洛伊德算法理解(by:山上的神仙)

    关于这个算法的个人理解(---下图都代表箭头→) 关于这个算法其实就是寻找最短路径,笔者是根据代码和图形来理解核心...

  • 算法之「弗洛伊德(Floyd)算法」

    弗洛伊德算法 弗洛伊德(Floyd)算法是 Robert W. Floyd(罗伯特·弗洛伊德)于 1962 年发表...

  • 山上住着神仙

    巍峨的大山,层峦叠嶂,轻雾飘渺。 在心中,它总是披着神秘的面纱,莫非住着神仙? 一日,拾级而上,一探芳踪。深潭幽谷...

  • 山上做神仙的日子

    那是在二O一一年的初夏,我结束了近两年的陕北革命(打工),回到了故乡;一个以温泉休闲胜地而名闻古城的地方。在休整了...

  • 风中有朵想做雨的云

    曾经我问过师父,山上有神仙么? 师父说有啊 山上不只有神仙的 山上还有风 有花 有雪 有月 我不解 问师父何为风花...

  • 深度透析Floyd算法

    Floyd算法 1、概念 Floyd算法(罗伯特·弗洛伊德命名) Floyd算法又称为插点法,是一种利用动态规划的...

  • 弗洛伊德算法

    它能算出2个点之间的最短路程。 输出

  • 太行山上小神仙

    一、奇怪的梦境 3月初的上海淅淅沥沥的下着小雨,租住的房间阴冷潮湿,窗户还能感觉到冷气在往进冒。 陆可为今天没有出...

  • 19-图的最短路径

    图的最短路径 迪杰斯特拉算法 贝尔曼-福特算法 弗洛伊德算法 SPFA算法(中国西南交通大学段凡丁发明) 最短路径...

  • 山迹

    山上有神仙 山上有道士 山上还有些许树 山上死去的石头下站满了人 人把浓烟点起来了,人把山遮蔽

网友评论

      本文标题:弗洛伊德算法理解(by:山上的神仙)

      本文链接:https://www.haomeiwen.com/subject/ryqhrqtx.html