并查集
概念:
并查集是若干个不相交集合,能够实现较快的合并和判断元素所在集合的操作,应用很多。一般采取树形结构来存储并查集。在一些应用问题中,我们需要划分n个不同的元素成若干组,每一组的元素构成一个集合。这种问题的一个解决办法是,在开始时,让每个元素自成一个单元素集合,然后按一定顺序将属于同一组的元素所在的集合合并。其间要反复用到查找一个元素在哪一个集合的运算。
常见两种操作:
将编号分别为1…N的N个对象划分为不相交集合,在每个集合中,选择其中某个元素代表所在集合。
1.合并两个集合
2.查找某元素属于哪个集合
进一步优化——路径压缩:
利用一个rank数组来存储集合的深度下界,在查找操作时进行路径压缩使后续的查找操作加速。这样优化实现的并查集,空间复杂度为O(N),建立一个集合的时间复杂度为O(1)。
思想:
每次查找的时候,如果路径较长,则修改信息,以便下次查找的时候速度更快。
步骤:
1.找到根结点
2.修改查找路径上的所有节点,将它们都指向根结点
相关推荐
并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复...
数据结构 并查集 查询 快速 实用 ACM
并查集 第12章 并查集
并查集模板并查集模板并查集模板并查集模板并查集模板并查集模板
深入理解并查集算法,细致讲解,专业老师,一步到位 。
学习并查集的好东东,需要的看看吧,ACM之路
并查集讲义,清楚明白地讲解并查集原理及优化
并查集详解
并查集,acm,并查集的入门课件,主要使用与ACM学习
C++版并查集的课件,定义,并查集的精髓代码以及路径压缩的内容
C++整理\并查集\并查集初步.ppt 并查集初步
在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一...即使在空间上勉强通过,运行的时间复杂度也极高,根本就不可能在比赛规定的运行时间(1~3秒)内计算出试题需要的结果,只能用并查集来描述。
并查集的简介,用法,以及一些例子
算法与数据结构:并查集实现的方法,以及ACM并查集的一些例子
并查集原理和代码实现。或许你并不知道,你的某个朋友是你的亲戚。他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子。如果能得到完整的家谱,判断两个人是否亲戚应该是可行的,但如果两个人的最近公共祖先与他们...
关于并查集的几道经典题目,希望对大家有所帮助
并查集的一些基础知识讲解,详细的PPT,希望对搜索者有帮助!
最经典并查集详细讲解, 最经典并查集详细讲解。
使用C++实现了并查集的建立,合并和查找功能,并附简单的测试用例。