蓝桥杯算法入门(Python) 课件 3-8并查集.pptxVIP

  • 1
  • 0
  • 约小于1千字
  • 约 15页
  • 2026-08-23 发布于山东
  • 举报

蓝桥杯算法入门(Python) 课件 3-8并查集.pptx

罗勇军;并查集(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

};并查集的查找;应用:有多少个集(帮派)?;复杂度;查询的优化:路径压缩;路径压缩:递归实现;路径压缩:递归实现

文档评论(0)

1亿VIP精品文档

相关文档