- 1
- 0
- 约小于1千字
- 约 15页
- 2026-08-23 发布于山东
- 举报
罗勇军;并查集(DisjointSet):一种非常精巧而实用的数据结构
用于处理不相交集合的合并问题
经典应用:
连通子图
最小生成树Kruskal算法
最近公共祖先;有n个人一起吃饭,有些人互相认识。
认识的人想坐在一起,而不想跟陌生人坐。
例如A认识B,B认识C,那么A、B、C会坐在一张桌子上。
给出认识的人,问需要多少张桌子。;并查集的操作;并查集的初始化;并查集的合并;加入第二个朋友关系(1,3):
查找结点1的集,是2,递归查找元素2的集是2;
把元素2的集2合并到结点3的集3。此时,结点1、2、3都属于一个集。;加入第三个朋友关系(2,4):;voidmerge_set(intx,inty){//合并
x=find_set(x);
y=find_set(y);
if(x!=y)s[x]=s[y];//y成为x的父亲,x的集是y
};并查集的查找;应用:有多少个集(帮派)?;复杂度;查询的优化:路径压缩;路径压缩:递归实现;路径压缩:递归实现
您可能关注的文档
- 蓝桥杯算法入门(Python) 课件 1-1蓝桥杯软件赛参赛规则.pptx
- 蓝桥杯算法入门(Python) 课件 1-2蓝桥杯软件赛题型介绍.pptx
- 蓝桥杯算法入门(Python) 课件 1-4蓝桥杯软件赛知识点.pptx
- 蓝桥杯算法入门(Python) 课件 1-5备赛计划.pptx
- 蓝桥杯算法入门(Python) 课件 2-1杂题和编程能力.pptx
- 蓝桥杯算法入门(Python) 课件 2-2杂题例题.pptx
- 蓝桥杯算法入门(Python) 课件 2-3填空题概述.pptx
- 蓝桥杯算法入门(Python) 课件 2-4填空题例题.pptx
- 蓝桥杯算法入门(Python) 课件 3-3链表.pptx
- 蓝桥杯算法入门(Python) 课件 3-7二叉树.pptx
原创力文档

文档评论(0)