【模板】【数据结构】并查集(路径压缩+按秩合并)
来源:互联网 发布:云计算和软件工程区别 编辑:程序博客网 时间:2024/06/08 00:32
int find(int x)//递归版{ return f[x]==x?x:f[x]=find(f[x]);}int find(int x)//非递归版(这可能是我写过的最长的并查集){ int y=x; while(f[y]!=y) y=f[y]; int tmp,rt=y; y=x; while(f[y]!=y) { tmp=f[y]; f[y]=rt; y=tmp; } return rt; } void merge(int x,int y)//按秩合并{ int fx=find(x),fy=find(y); if(fx==fy) return ; if(rank[x]>=rank[y]) { f[y]=x; rank[x]+=rank[y]; } else { f[x]=y; rank[y]+=rank[x]; }}for(int i=1;i<=n;i++) f[i]=i,rank[i]=0;
所谓按秩合并,也叫启发式合并,就是把小的合并到大的上去。不仅并查集可以按秩合并,还有很多数据结构可以按秩合并,比如平衡树(就是把较小的平衡树的节点一个个地插入大的平衡树)。
时间复杂度
阅读全文
1 0
- 【模板】【数据结构】并查集(路径压缩+按秩合并)
- Disjointset 并查集(按秩合并,与路径压缩)的模板
- 并查集讲解(按秩合并与路径压缩),模板与典型例题
- 数据结构实现之并查集(使用按秩合并和路径压缩)
- 并查集(按秩合并、路径压缩)
- 并查集 按秩合并&路径压缩
- 并查集(两个优化—按秩合并、路径压缩) poj2492
- 并查集(路径压缩 && 启发式合并!!!)
- 并查集模板[路径压缩]
- 【模板】并查集 压缩路径
- 【并查集&路径压缩 模板】
- 数据结构 并查集 路径压缩
- 并查集,路径压缩,按元素数量合并,带权并查集
- 杭电 1856 并查集路径压缩+按秩合并
- 并查集的两种优化(按秩合并,路径压缩)
- 并查集的优化:按秩合并和路径压缩
- 并查集的“并优化”(leader合并)和“查优化”(路径压缩)
- 并查集的启发式合并 和 路径压缩
- this与Thread.currentThread
- 关于双向回呼系统
- HDU 1754(线段树,单点覆盖 询问区间最值)
- 爬虫requests对post的使用方法
- 神经网络中的难点及解决方案
- 【模板】【数据结构】并查集(路径压缩+按秩合并)
- 单链表的操作集合
- php文件上传
- MySQL 查询所有表名
- python入门(十八):os模块
- Redhat修改主机名
- Android中getX()和getRawX()坐标的区别
- “NetSarang的Xmanager和Xshell多种产品被植入后门事件”分析报告
- C