没有合适的资源?快使用搜索试试~ 我知道了~
算法设计与分析-5图论桥pre ppt.pptx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 6 下载量 34 浏览量
2022-06-18
21:50:42
上传
评论
收藏 1.89MB PPTX 举报
温馨提示
试读
17页
仅供参考,copy冲查重塔峰 算法设计与分析-5图论桥pre ppt.pptx (1) 图的连通性。 (2) 并查集的基本原理和应用。 找出一个无向图中所有的桥 数据获取 边稀疏 空间浪费 基准算法 深度优先dfs 查并集dsu 高效算法 dfs基准算法优化(判断可达) 查并集+最小公共祖先 数据处理 基准算法:DFS比DSU效率高。 小规模数据:深度不大,路径压缩效果不明显。 判断可达后时间缩短40%,效果较明显。 dsu+lca可避免大量冗余计算,效果明显。 图的连通性 DFS、BFS、DSU生成生成树:连通性。 DSU:父亲数组father、查找find()、合并join() 路径压缩和按秩合并
资源推荐
资源详情
资源评论
算法分析与设计
实验
5
桥
找出一个无向图中所有的桥
数据获取
边稀疏
空间浪费
集合容器set (排序和去重)
基准算法
深度优先 dfs
查并集 dsu
高效算法
dfs 基准算法优化 ( 判断可达 )
查并集 + 最小公共祖先
数据处理
2022/6/1 2
这是有 16 个顶点和 6
个桥
没有桥的无向连通图
基准算法:连通块数获取
基准法 1 :深度优先 dfs
father 数组:标记相同块
基准法 1
2022/6/1 3
DFScoutArea():
res = 0
while i = 0 to vn:
if father[i]==i:
dfs(i)
res++
return res
dfs 连通块获取伪代码:
dfs(node) //深度优先搜索
while j in node.adj:
if father[j] == father[node]:
continue
father[j] = father[node]
dfs(j)
1. 求解问题
找出一个无向图中所有的桥。
基准算法
For every edge (u, v), do following
a) Remove (u, v) from graph
b) See if the graph remains connected (We can either use BFS or DFS)
c) Add (u, v) back to the graph.
基准法
2
查并集
DSU
树型数据结构:森林
获得连通块的集合
更新维护父亲结点
整型数组 father[vn] :
vn 为结点数
初始为自身
查找函数 nd()
查找每个结点的父亲
路径压缩
合并函数 join()
边加入
nd() 更新
father
查找函数 find()伪代码:
find(x):
if father[x]==x:
return x //本身就是祖先直接返回
return father[x]=find(father[x]) //调用查找函数查找祖先,同时路径压缩
合并函数 join()伪代码(基本实现):
join(x,y): //将断点为 x,y 的 2 条边加入,同时更新祖先
fx=find(x) //查找端点 x 的祖先
fy=find(y) //查找端点 y 的祖先
if fx!=fy:
father[fx]=fy //不同属 1 个家族需要合并
剩余16页未读,继续阅读
jennie佳妮
- 粉丝: 3529
- 资源: 25
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页