并查集问题
互相连通的节点组成一个连通分量 如上图就是{0,1,2,5,6,7}{3,4,8,9}
quick_find
查询是否连通: 看对应的id是否一样
连接:将所有与给定对象之一的相同ID对应的项改成一样的,实现合并操作,但会造成很多值需要改变
直接代码实现:
访问数组的此时
查找:o(n)
合并:哦(n^2)
太慢了,改进一下
Quick-union
根节点相同则在一个连通分量里。
合并时非常简单,令第一个元素的根节点链接到第二个元素的根节点上
代码实现:
都不支持巨大连通图,再改进一下
在实现快速合并算法的时候执行一些操作避免得到很高的树
方法:把相对小的树的根节点 变成 相对大的树的根节点的子节点 带权
代码实现:
算法笔记(一)
最新推荐文章于 2024-07-10 11:04:17 发布