转接上一篇,地址:https://blog.youkuaiyun.com/q1119823309/article/details/90703135
我的码云地址:码云地址
开始
并查集
并查集,仅判断两者是否为连接关系不考虑路径问题,判断两个值是否有连接关系,判断两者是否有同样的根节点即可。可用一个数组来表示连接关系
- 将连接相同的数都固定为一个值,每次union都必须遍历数组,将同一值的修改成一致。
- 树形结构优化:变成树形结构,union指向连接一级即可。
- 基于size优化:union操作将元素少的指向元素多的根节点。
- 基于rank优化:union操作将层级低的指向层级高的
- 路径压缩优化:路径压缩优化1 --> 将当前指向指向父节点的父节点。跨两级;路径压缩优化2 --> 递归将每个层级都指向根节点,理论最优,实际比1要差一点