通过例子超级通俗学会最短路径:迪杰斯特拉、弗洛伊德算法

一、迪杰斯特拉算法

看例子:

1、初始化起点v0到各顶点的距离
在这里插入图片描述
2、取出距离最短的顶点v2,那么v0-v2的最短路径就出来了,为8。找到一个节点了
在这里插入图片描述

3、然后看看能不能通过Vj继续更新最短路径,然后找最短的v1
在这里插入图片描述

4、此时,v1的最短路径也已经确定了,是13,然后我们接着执行相同的动作,看看能否通过v1到其他节点的距离能被缩短。找出最短的v3
在这里插入图片描述

5、找到v3的最短路径,再看由于v3的加入,到其他节点会不会更小。更小就修改矩阵。我们发现由于v3的加入,到v4的距离变小了。并且此时v0到v4的距离最小,所以再把v4加入到vj集合。

在这里插入图片描述

6、再通过v4试探,后面v6、过程同上。最后我们更新完毕,得到下面的矩阵,那么至此,v0到各个节点的最短路径就全部求出来了。

在这里插入图片描述


二、弗洛伊德

在这里插入图片描述
看例题:
在这里插入图片描述

开始算法:
1、以A顶点做中间媒介,看看能否缩短距离
在这里插入图片描述
2、再以B顶点做中间媒介
在这里插入图片描述

3、再以C做中间顶点
在这里插入图片描述

4、将所有顶点都做一次中间节点,结束之后,得到的矩阵,就是最短路径情况了。


最短路径算法在数据结构中是重点,在计算机网络中的路由算法也有涉及,可以说是考试的重点。考试一般不会让我们写代码,掌握上面的做题思想即可。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值