参考了 《挑战程序设计竞赛》 第二版 P88
并查集可以高效地进行如下操作:
- 查询元素a和元素b是否属于同一组
- 合并a和b所在的组
下面看下并查集常用方法init, find, unit, same的代码
|
|
加上了路径压缩和树的高度rank数组的优化,一次操作的复杂度是O(alpha(n)),alpha(n)是Ackermann函数的反函数,比O(log(n))还要快。
参考了 《挑战程序设计竞赛》 第二版 P88
并查集可以高效地进行如下操作:
下面看下并查集常用方法init, find, unit, same的代码
|
|
加上了路径压缩和树的高度rank数组的优化,一次操作的复杂度是O(alpha(n)),alpha(n)是Ackermann函数的反函数,比O(log(n))还要快。