社区
数据结构与算法
帖子详情
#判断图的回路问题
UNIXwlc
2004-12-23 01:40:58
请教大家一个问题! 是一DS课本后的习题。
问题描述:写一算法,判断N个顶点的图(包括有向图、无向图)中是否含有回路,要求编写的算法时间复杂度为O(N).
我开始按照基于图的遍历的思路来做,结果时间复杂度就是降不下来。不知大家有没有基于遍历的符合要求的算法。
我自己还有一个思路,就是通过判断某个连通分支中顶点数和边数的关系,不过连通分支判断花去不少时间。
大家有什么好的算法,烦请指导! 谢谢!
...全文
328
7
打赏
收藏
#判断图的回路问题
请教大家一个问题! 是一DS课本后的习题。 问题描述:写一算法,判断N个顶点的图(包括有向图、无向图)中是否含有回路,要求编写的算法时间复杂度为O(N). 我开始按照基于图的遍历的思路来做,结果时间复杂度就是降不下来。不知大家有没有基于遍历的符合要求的算法。 我自己还有一个思路,就是通过判断某个连通分支中顶点数和边数的关系,不过连通分支判断花去不少时间。 大家有什么好的算法,烦请指导! 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jaredcsdn
2004-12-31
打赏
举报
回复
这个问题要想O(N)完成是不太可能的
这里有个变通的办法,不过是O(n^3)
先把图转成邻接矩阵(1/0),做一次Warshall算法,如果对角线上有1,就说明有回路
UNIXwlc
2004-12-30
打赏
举报
回复
回复mathe():
基于图的遍历的时间复杂度是O(|V|+|E|),所以我觉得O(N)不很准确。
具体参考《数据结构与算法》许卓群、张铭 高教版
这个问题我根据第二个思路想了很久,也没有想出好的解决方法,发觉判断连通分支很费时间!
yishuihan03
2004-12-29
打赏
举报
回复
有没有消除重复回路的算法?想了2个多小时,还没有找到,等待中!!!
mathe
2004-12-26
打赏
举报
回复
输错了,是不可能在O(N)的时间内完成,除非已知边的数目同N同阶
mathe
2004-12-26
打赏
举报
回复
时间复杂度O(N)不肯定,应该是O(E),E是边的数目。
lyff8neo
2004-12-25
打赏
举报
回复
那么要把所以的回路都要输出呢,我看了一个算法好像要非常复杂的
mathe
2004-12-23
打赏
举报
回复
很简单,首先对于每个顶点x,添加一个参数visit[x]
就是深度优先遍历一次就可以了,
对于无向图,如果有某个点被两次以上访问到,那么就存在回路。
对于有向图,在深度优先遍历中,如果某个顶点的一个孩子是它的祖先,就存在回路了。
深度优先搜索
判断
回路
用C写的实现对关系矩阵
图
的深度优先搜索,
判断
是否存在
回路
。如果存在就把它存入文件
欧拉
回路
的Fleury算法
图
论——欧拉
回路
的Fleury算法 根据离散数学教材中思想 实现求欧拉
回路
。
欧拉
回路
题集
欧拉
回路
题集,适用于算法爱好者,内含 欧拉
回路
的多种题型
深度遍历检查
图
中是否有
回路
存储结构:邻接矩阵; 实现功能:深度遍历求
回路
; 博客中的代码实现
20151910042-刘鹏-AG实验05-欧拉
图
判断
与寻找欧拉
回路
1
云南大学数学与统计学院《算法
图
论实验》上机实践报告课程名称:算法
图
论实验年级:2015级上机实践成绩:指导教师:李建平姓名:刘鹏专业:信息与计算科学上机实践名称
数据结构与算法
33,028
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章