博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图的单源最短路径,Floyd算法(数据结构c++)
阅读量:6404 次
发布时间:2019-06-23

本文共 433 字,大约阅读时间需要 1 分钟。

这个算法结构很是简单,但是理解还是有一定的困难,一开始做的时候想不明白,跟着算法自己动手画画就知道这个算法具体是怎么回事了。

时间复杂度是O(N*3)

算法有点动态规划的意思,有两个数组,一个(dis[])是记录俩顶点之间的最短路径的长度的,一个[path]数组是记录俩结点的中间结点的。在初始化这个数组的默认为 顶点的下标。。 

最重要的就是下面的几步

if(dis[sta][end]>dis[sta][temp]+dis[temp][end]){

dis[sta][end] = dis[sta][temp]+dis[temp][end];

}

上面的代码就是这个算法的精华部分。

sta:开始的顶点,end:结束的顶点,temp:是sta和end上的中间结点

两者相比较,要是有更短的路径就跟新俩结点的距离。

以每一个结点为中间点,更新数组,也就是所有顶点的距离。

话不多说。上程序。。。。

img_eca6e9f181245c8a05d667b550deca3b.png

img_bcc5a1c80b5e526dee289576fd503e8a.png
img_765a3266d60b4c1e16c6d9b2c1be651f.png
img_c35d76646cc8fb575438026021ddb17b.png
img_301e90f6b96932fd58839dd2871fa4c1.png

OK

就这个多,之前的都是铺垫,注意看重点的部分,floyd算法部分

转载地址:http://renea.baihongyu.com/

你可能感兴趣的文章
Linux下怎么使用任务管理器和进程管理
查看>>
Bytom合约预编译
查看>>
如何将两个Redis主备实例建立全球灾备
查看>>
副高职称论文发表费用
查看>>
好程序员web前端分享Vue学习笔记(一)
查看>>
第二届“强网”拟态防御国际精英挑战赛即将开赛
查看>>
电脑关机后鼠标指示灯还亮着的解决
查看>>
我的友情链接
查看>>
Powershell获取Exchange 邮箱用户配额
查看>>
Winbox配置PPPOE的参数
查看>>
GNU版本号命名风格
查看>>
分区时注意的细节问题
查看>>
鼠标跟随提示效果
查看>>
光城剖析
查看>>
实现 Mutt的fortune签名
查看>>
SQL Server是如何跟踪每一列的修改计数的?
查看>>
python的标准输入,输出,错误输出。
查看>>
java.lang.NoClassDefFoundError: com.baidu.mapapi.BMapManager解决办法
查看>>
linux 下snmp安装与使用
查看>>
Mysql 大数据量高并发的数据库优化
查看>>