路径压缩优化并查集的时间复杂度

这篇博客探讨了路径压缩优化的并查集在实际操作中的时间复杂度,指出其并非简单的O(mα(n)),而是O(mlog1+m/nn)。通过介绍二项树的概念,解释了如何构造特定的二项树来达到这个复杂度,并阐述了路径压缩后二项树的变化。文章借助数学归纳法分析了二项树的点数,并在m≥n的条件下,展示了如何进行2n组操作,每组包含m次查询,从而得出总操作次数的上界。
摘要由CSDN通过智能技术生成

路径压缩优化并查集大家一定很熟练了,那么它的复杂度是多少呢? O ( m α ( n ) ) O(m\alpha(n)) O(mα(n))

的确,很多人都是这么说的,但是事实上它的复杂度是 O ( m log ⁡ 1 + m / n n ) O(m\log_{1+m/n}n) O(mlog1+m/nn)的,并且能找到一种方法卡到这样的复杂度。

要卡并查集,首先要构造一种树——二项树。这种二项树还与普通的不太一样。

定义:在给定 j j j的情况下,二项树 T k T_k Tk定义如下:

  • k ≤ j k\leq j kj T k T_k Tk是一个点。
  • k > j k>j k>j T k T_k T
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值