关于并查集,推荐一篇非常好的博文《超有爱的并查集》,不足的是只使用了并查集两个主要优化中的"路径压缩"优化,其中代码主要采用迭代的方式,其实很多情况下采用递归的写法要易懂很多。本文将基于C++实现并查集并使用“按秩合并”和”路径压缩“优化并查集。
并查集的基本概念
并查集(Union Find),在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。
对于一个集合 S =
关于并查集,推荐一篇非常好的博文《超有爱的并查集》,不足的是只使用了并查集两个主要优化中的"路径压缩"优化,其中代码主要采用迭代的方式,其实很多情况下采用递归的写法要易懂很多。本文将基于C++实现并查集并使用“按秩合并”和”路径压缩“优化并查集。
并查集(Union Find),在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。
对于一个集合 S =