并查集 - 元素的归属
I.综述&解释
顾名思义,并查集就是一种支持查询元素属于哪个集合、合并集合的数据结构。
II.起源
这个数据结构是为了解决维护若干不重叠集合而提出的。
用代表元的思想来区分不同的集合,而用树形关系表示所属,有效地平衡了查询与修改的时间复杂度。
同时,引入的两种优化,分别通过“选择性丢失信息”和“启发式合并”的策略对并查集进行优化。
不过,这也使得并查集难以对集合进行分裂,因为为了能够快速地修改集合归属,并查集在进行合并时只修改代表元素,以及在进行“路径压缩”优化时改变了并查集结构,这使得集合原有归属信息丢失,使得我们难以进行差集操作。
III.基本操作
- 初始化(init)
将每个元素的父元素初始化为自己。此时自己构成一个集合
- 查找代表(get)
从元素递归向上,直到找到当前集合的代表元素
- 并集(Merge)
执行get操作两次,找到两个集合的代表元素,将其一的父元素设为另一集合的代表元素
本文来自博客园,作者:haozexu,转载请注明原文链接:https://www.cnblogs.com/haozexu/p/18281779

浙公网安备 33010602011771号