并查集(Union-Find)算法
2018-01-28 12:09
295 查看
最近用到了并查集,记录一下。主要还是对应用场景进行分析建模,判断是否可以使用并查集。
并查集算法主要用于判断连通性。典型的应用场景很多,举例:
1. 网络连通判断。如,已知部分临散的点连通,判断整个网络是否连通。
2. 变量名等同性。在程序中,可以声明多个引用来指向同一对象,这个时候就可以通过为程序中声明的引用和实际对象建立动态连通图来判断哪些引用实际上是指向同一对象。
3. 金属渗透建模。金属可以理解为一个二维矩阵,金属是否可以导电,需要判断是两端是否连通。
并查集使用数组来维护一个树状结构。主要有3个操作:
(1) union, 连通2个点。合并到一个分支。
(2) connected,判断2个节点是否位于同一个分支,也就是是否连通。
(3) find, 获取当前节点所在的分支。
union实现的不同,耗时差异大。这点需要注意,保持树的深度不要恶化。
具体可以参考: http://blog.csdn.net/dm_vincent/article/details/7655764
并查集算法主要用于判断连通性。典型的应用场景很多,举例:
1. 网络连通判断。如,已知部分临散的点连通,判断整个网络是否连通。
2. 变量名等同性。在程序中,可以声明多个引用来指向同一对象,这个时候就可以通过为程序中声明的引用和实际对象建立动态连通图来判断哪些引用实际上是指向同一对象。
3. 金属渗透建模。金属可以理解为一个二维矩阵,金属是否可以导电,需要判断是两端是否连通。
并查集使用数组来维护一个树状结构。主要有3个操作:
(1) union, 连通2个点。合并到一个分支。
(2) connected,判断2个节点是否位于同一个分支,也就是是否连通。
(3) find, 获取当前节点所在的分支。
union实现的不同,耗时差异大。这点需要注意,保持树的深度不要恶化。
具体可以参考: http://blog.csdn.net/dm_vincent/article/details/7655764
相关文章推荐
- 并查集(Union-Find)算法
- 并查集(Union-Find)算法介绍
- 并查集(Union-Find)算法介绍
- 算法学习 并查集(Union-Find) (转)
- 并查集(Union-Find)算法介绍
- 动态连通性、并查集(union-find)算法介绍
- 并查集(Union-Find)算法介绍
- 并查集(Union-Find)算法介绍
- 并查集(Union-Find)算法介绍
- 并查集(Union—find)算法实现简单的迷宫
- Union-Find 算法(并查集)
- 并查集(Union-Find)算法介绍
- 并查集(Union-Find)算法介绍
- 并查集(Union-Find)算法理解
- 并查集(Union-Find)算法介绍——转载dm_vincent的博客文章(CSDN blog)
- 并查集(Union-Find)算法介绍
- 算法合集——并查集union-find
- 并查集(Union-Find)算法介绍
- 并查集(Union-Find)算法介绍
- 并查集(Union-find)算法介绍