【数据结构&&算法系列】并查集简单介绍

来源:互联网 发布:书 知乎 编辑:程序博客网 时间:2024/06/08 05:43

应用

并查集主要用来判断动态连通性(即网络中有多少个不相交的集合)。




说明

并查集的主要操作是并和查
  1. 并:void union(x,y) 用于将x和y所属于的不相交集合并为相交集合,如果x,y本属于同一个集合,则不需要操作。
  2. 查:int find(x) 判断某个个体所属于的集合ID,集合ID一般用某个代表个体的ID表示

并查集还有其他接口,其中两个如
  1. int count() 返回并查集的不相交集合的个数 
  2. boolean connected(x,y) 判断两个个体是否属于同一个集合

并查集设计的主要难点在于如何降低并查集常用算法的时间复杂度,由此衍生出许多并查集算法。该部分可以参考 http://blog.csdn.net/dm_vincent/article/details/7655764。


并查集最终的形状是一个森林,每颗树表示每个不相交集合,每个节点表示每个个体。




参考资料

1. 并查集Union-Find 算法介绍 http://blog.csdn.net/dm_vincent/article/details/7655764
2. 该博客里面含有较多的并查集的知识 http://blog.csdn.net/vsooda/article/details/7295249
3. 并查集维基词条 http://zh.wikipedia.org/zh-cn/%E5%B9%B6%E6%9F%A5%E9%9B%86
0 0
原创粉丝点击