初学并查集知识总结后续增加
来源:互联网 发布:网络直播学校 编辑:程序博客网 时间:2024/06/06 01:21
并查集
并查集顾名思义就是有“合并集合”和“查找集合”两种操作的有关于数据结构的一种算法。
并查集是一种树形的数据结构,用于处理一些不相交集合的合并以及查找等问题。常常在使用中以森林来表示。
算法
用集合中的某个元素来代替这个集合,该元素称为集合的代元素。
一个集合内的所有元素组织称为以代表元为根的树形结构。
对于每一个元素parent[x]指向x的树形结构上的父亲节点。如果x是根节点,则令parent[x]=x.
对于查找操作,假设需要确定x所在的集合,也就是确定集合的代表元。可以沿着parent[x]不断的在树形结构上移动,直到到达跟节点。(判断两个元素是否在一个集合,只需要看他们的代表元是否相等即可,也就是根节点是否相同即可。)
路径压缩
为了加快查找速度,查找时间将x到根节点路径上的所有点的parent都设为根节点,这就是压缩路径。
具体实例
南阳oj 题目一笔画问题,题解用并查集加欧拉图 题目分析点这里
核心代码
//初始化并查集 比较重要void init(){ for(int i=1;i<=n;i++) father[i]=i;}//获取根节点int getfather(int x){ while(x!=father[x]) x=father[x]; return x;}//压缩路径获取根节点int getfather(int x){ if(x!=father[x]) father[x]=getfather(father[x]);//路径的压缩修改 递归回溯 return father[x];}//合并俩个元素所在的集合void union(int x,int y){ x=getfather(x); y=getfather(y); if(x!=y) father[x]=y;}
阅读全文
1 0
- 初学并查集知识总结后续增加
- 初学欧拉图,知识总结,后续增加
- 并查集知识总结
- 初学并查集
- 初学并查集
- 并查集知识
- 并查集知识
- 并查集--(初学,入门)
- 并查集知识总结(师傅的)
- 并查集 知识讲解
- 并查集主要知识
- 并查集知识图解
- 并查集初学——病毒
- 并查集初学——吸血鬼
- 并查集初学(1)
- 并查集总结
- 并查集总结
- 并查集总结
- js数组去除重复数据
- 如何手动更新 Laravel Homestead
- Android解决okhttpUtils框架无法在4.4.4以下系统访问https协议的问题
- 合并果子
- Win32一些通篇资源ID显示未定义
- 初学并查集知识总结后续增加
- Add Two Numbers
- proc/sys/net/ipv4/下各项的意义
- 不同方法实现1+2+3+4+5+....+n
- JVM原理和优化
- Cxf中获取Http对象
- Qt为程序或库添加版本信息
- Spring实战4之高级配置篇
- java中的FileChannel基本使用