社区
数据结构与算法
帖子详情
如何判断一个图是否连通?
liuding731
2007-07-12 02:43:25
rtrt
...全文
8861
40
打赏
收藏
如何判断一个图是否连通?
rtrt
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
40 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tt346446408
2010-08-25
打赏
举报
回复
从图中某点出发如果能一次性的遍历完图中的各个顶点,则该图为连通图,否则为非连通图
FancyMouse
2010-08-13
打赏
举报
回复
>我实现的是20万顶点,80万的数量。不到1分钟。
好慢……
bigc2000
2010-08-13
打赏
举报
回复
别瞎话了
去看看Tarjan算法和GABOW算法,都是一次O(V+E),我实现的是20万顶点,80万的数量。不到1分钟。
wjjayo
2010-08-11
打赏
举报
回复
厉害,我也正被这个问题所困扰
zhu_nn
2010-08-11
打赏
举报
回复
用深搜广搜吧
Justmeh
2010-08-11
打赏
举报
回复
for each vertex v
v.visited = false;
q.enqueue(v0); // 任先一个起始顶点入队列
count = 0;
while(!q.isempty())
{
v <-- q.dequeue();
v.visited = true;
count++;
for each vertex w adjacent to v
{
if(!w.visited)
q.enueue(w);
}
}
if(count==总的点数n)
连通
else
非连通
复杂度为O(|v|+|E|)(顶点数+边数)
augustinlouis
2010-05-19
打赏
举报
回复
无向图很简单,用dfs一次搞定,有向图就很复杂了,常见的方法有Tarjan和Gabow,他们可以找出一个有向图的所有强连通分量,得到一个核心DAG(刚发现此贴似乎是07年的帖子。。。。。)
aipeng
2010-05-17
打赏
举报
回复
如果在MATLAB里那又该如何判断呢?代码怎么写?谢谢!
heelp
2010-05-17
打赏
举报
回复
DFS 并查集(判断最后是否只有一个集合)都可以吧
flying_sb
2010-05-17
打赏
举报
回复
便利一遍应该就可以了吧
AAA20090987
2010-05-17
打赏
举报
回复
直接用深搜或广搜找一遍,全部找到了就是连通的,否则就是不连通的。
超级大笨狼
2009-10-10
打赏
举报
回复
我计算过围棋的死活问题,递归向4个方向,每前进一步,标记一下,复杂度应该是O(n)级别的,n是连通的范围,只要有和空地相连就没死,就跳出了,因为跳出的概率很大,所以速度还是很快的。
euroman
2009-10-09
打赏
举报
回复
[Quote=引用 25 楼 chounuo 的回复:]
楼上的算法可以,但说明有点问题:复杂度不应该是O(N),因为remove these nodes nodes from Q0 的复杂度一般不是1,这涉及一个查找问题.
[/Quote]
是的,谢谢,上面算法的时间复杂度是O(N*N)
如果只需要校验这个图是否连通图,可以进行简化,把最外层的循环去掉,也把remove these nodes nodes from Q0,从途中任意一个点出发,然后在循环里面对点的数目进行计算。
当跳出循环后,如果计数器中的数目小于途中点集的数目,那么就说明此图不是一个连通图,而且算法的复杂度就可以达到O(N)啦。
之前给的伪码可以用来计算图中有多少个连通图(明显题目不需要进行具体的数目,只需要判断是否连通)。
希望这个是完美的答案
showjim
2009-10-08
打赏
举报
回复
[Quote=引用 1 楼 fire_woods 的回复:]
从任意点出发
在剩余的点中,找到所有相邻点
循环,直到没有点可以加入为止.如果有剩余的点就是不连通的.否则就是连通的.
[/Quote]
配合hash,效率应该很高的。
showjim
2009-10-08
打赏
举报
回复
[Quote=引用 1 楼 fire_woods 的回复:]
从任意点出发
在剩余的点中,找到所有相邻点
循环,直到没有点可以加入为止.如果有剩余的点就是不连通的.否则就是连通的.
[/Quote]
配合hash,效率应该很高的。
hua_zhixing_
2009-10-08
打赏
举报
回复
用深度或广度优先搜索,若得到的元素与集合的所有元素相等,则是连通图,否则不是。
andy0409
2009-10-08
打赏
举报
回复
都是厉害角色.
latitude
2009-10-08
打赏
举报
回复
楼上的算法可以,但说明有点问题:复杂度不应该是O(N),因为remove these nodes nodes from Q0 的复杂度一般不是1,这涉及一个查找问题.
latitude
2009-10-08
打赏
举报
回复
楼上的算法可以,但说明有点问题:复杂度不应该是O(N),因为remove these nodes nodes from Q0 的复杂度一般不是1,这涉及一个查找问题.
booksoon
2009-10-08
打赏
举报
回复
从任意点出发
在剩余的点中,找到所有相邻点
循环,直到没有点可以加入为止.如果有剩余的点就是不连通的.否则就是连通的.
加载更多回复(20)
建立
一个
图
并
判断
其
是否
连通
数据结构作业,建立
一个
有向
图
或者无向
图
,然后
判断
其
是否
是
连通
的
建立
一个
带权无向
图
用邻接矩阵表示,
判断
此
图
是否
连通
建立
一个
带权无向
图
用邻接矩阵表示,
判断
此
图
是否
连通
,若是
连通
图
,用Prim算法输出该
图
的最小生成树
5天通俗易懂的HTML5核心技术教程(含资料)
HTML5是构建Web内容的一种语言描述方式。HTML5是互联网的下一代标准,是构建以及呈现互联网内容的一种语言方式.被认为是互联网的核心技术之一。本套视频录制的是最新HTML5教程; HTML5是定义 HTML 标准的最新的版本。 广义上我们应该认为HTML5是一套技术集合,允许更多样化和强大的网站和应用程序。主要包括语义,
连通
性,离线 & 存储,多媒体,2D/3D绘
图
& 效果,性能 & 集成,设备访问,样式设计。
jk.rar_
图
连通
_
连通
_
连通
分支_
连通
图
图
的
连通
性
判断
。本次实验要求用计算机语言编写
图
的
连通
性
判断
算法,可输入
图
的邻接矩阵,
判断
图
是否
连通
以及确定
连通
分支的个数,使学生掌握Warshell算法或矩阵幂算法的实现方法,培养算法设计与优化能力。
判断
图
是否
连通
假设以邻接矩阵作为
图
的存储结构,编写算法判别在给定的有向
图
中
是否
存在
一个
简单的有向回路,若存在,则一丁点序列的方式输出该回路(找到一条即可)。(注:
图
中不存在顶点到自己的弧)
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章