社区
尹成的课程社区_NO_2
go专业数据结构与算法高级
帖子详情
Bellman-Ford算法队列1.1
尹成学院
2023-01-13 01:38:09
课时名称
课时知识点
Bellman-Ford算法队列1.1
Bellman-Ford算法队列1.1
...全文
8
回复
打赏
收藏
Bellman-Ford算法队列1.1
课时名称课时知识点Bellman-Ford算法队列1.1Bellman-Ford算法队列1.1
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
队列
优化的
Bellman-Ford
算法
(C语言实现)
Bellman-Ford
算法
是比较暴力的,对着所有边一通猛算。当被计算的图是稠密图时, 所以时间复杂度为O(N * M) = O(N^3)。这个时间复杂度是非常高的。那么有没有优雅、高效的计算方法呢?这就是本节要讨论的
队列
优化的
Bellman-Ford
算法
。 小伙伴,你应该还记得BFS
算法
(广度优先
算法
) 中使用
队列
进行优化吧,其实
队列
优化的
Bellman-Ford
算法
基本上就可以认为是BFS +
Bellman-Ford
算法
,只不过这里的图是用邻接表实现的,而且BFS
算法
中,一个结点最多只能被加入
队列
基于邻接矩阵的
Bellman-Ford
和基于FIFO
队列
的
Bellman-Ford
算法
//有负权的图的最短路 //如果存在最短路就一定存在一条不含圈的最短路,最短路最多经过n-1个节点,通过松弛n-1轮得到 //BellmanFord
算法
包含了Dijkstra
算法
//基于邻接矩阵的
Bellman-Ford
算法
//基于FIFO
队列
的
Bellman-Ford
算法
#include #include #include #include #include
最短路问题
1
Bellman-Ford
/SPFA 1.1
Bellman-Ford
1.1.1
算法
复杂度 O(n*m) n:点数,m:边数 1.1.2future 可以求带负权的图,可以侦察出负权环 1.2SPFA 1.2.1思想 使用
队列
优化
Bellman-Ford
。把松弛过的点送入
队列
,之后再从
队列
里取点去做遍历,这样我们遍历的边的起点就都是已经松弛过后的点了,不会出现浪费时间的情况。 1.2.2future 因为使用了
队列
,所以要用其他办法找出其中的负权环。提供一种方法如下: 如果某个点进
图论:最短路径_SPFA
算法
SPFA
算法
SPFA
算法
是使用
队列
优化的
Bellman-Ford
算法
,求单源最短路径的一种
算法
。 SPFA
算法
进行了两种优化,但在最坏的情况下效果不佳,与不优化时相同。效率与
Bellman-Ford
算法
相同,但SPFA
算法
以点展开,
Bellman-Ford
算法
以边展开。
Bellman-Ford
算法
比SPFA
算法
好写很多。 实现方法 建立一个
队列
,初始时
队列
里只有起始点,在建立一个表格记录起始点到所有点的最短路径(该表格的起始值要赋为极大值,该点到他本身的路径赋为0)。然后执行松弛操作,用
队列
里有的点去刷新
【图论——第五讲】
Bellman-Ford
算法
求单源最短路及其
队列
优化SPFA
算法
ฅ(๑˙o˙๑)ฅ 大家好, 欢迎大家光临我的博客:面向阿尼亚学习
算法
学习笔记系列持续更新中~ 文章目录 一、前言二、
Bellman-Ford
算法
三、
Bellman-Ford
算法
队列
优化SPFA ...
尹成的课程社区_NO_2
1
社区成员
1,571
社区内容
发帖
与我相关
我的任务
尹成的课程社区_NO_2
尹成学院
复制链接
扫一扫
分享
社区描述
尹成学院
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章