并查集的两种启发式策略优化

本文介绍了并查集中的两种启发式策略优化:按秩合并和路径压缩,详细阐述了它们的原理和实现方法。按秩合并通过维护节点秩来提高效率,而路径压缩则在查找过程中直接指向根节点,两者结合能实现近乎线性的操作时间复杂度。
摘要由CSDN通过智能技术生成

在做算法实验(图论-桥问题)的时候想优化并查集效率,于是翻看算法导论的并查集部分(p329)发现里面提到“通过引入两种启发式策略(按秩合并和路径压缩),我们能得到一个渐近最优的不相交集合数据结构”。这里的路径压缩比较常见,但是按秩合并见的较少,理解起来也不那么容易。

按秩合并

按秩合并就是让具有较少结点的树的根指向具有较多结点的树的根,这里算法导论并没有简单粗暴的直接记录结点数量,而是采用了对每个结点维护一个秩的方法,秩表示该结点高度的一个上界

原文中具体的描述如下:

按秩合并

实现

按秩合并的具体算法步骤如下:

(1)初始化一个数组,记录每个结点的秩,初始都为0

(2)当进行union操作时,需要比较该边两个结点的最终父节点(即树根)的秩:

A. 如果两个根的秩相同,任意选择一个根作为父节点,并且让该父节点的秩加1

B.如果秩不同,将秩小的根的父节点设置为秩大的根,但是秩不用进行任何修改

具体的伪代码如下:

<

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值