等级和路径压缩算法联合中“等级”的重要性是啥?

Posted

技术标签:

【中文标题】等级和路径压缩算法联合中“等级”的重要性是啥?【英文标题】:What is importance of 'rank' in union by rank and path compression algorithm?等级和路径压缩算法联合中“等级”的重要性是什么? 【发布时间】:2016-06-04 22:59:34 【问题描述】:

我对算法的理解是这样的……

路径压缩有助于缩短查找操作的时间,并且超时路径压缩的时间复杂度平均为 O(1)。

我们根据排名确定两者中的哪一个是父节点(在联合操作期间)。

但我永远无法理解按等级联合的作用,我不相信我正确理解等级在这里的含义。我也不明白为什么在联合期间,如果要联合的两个集合的等级相同,则父级的等级增加 1。

【问题讨论】:

【参考方案1】:

https://en.wikipedia.org/wiki/Disjoint-set_data_structure 中以“第一种方式,称为 union by rank,总是将较小的树连接到较大树的根部”开头的段落表明,即使没有路径压缩,按秩并集也足以减少最坏情况 O(log n) 的连接操作的成本。

它还解释了,在没有路径压缩的情况下,等级反映了迄今为止生成的树的最大深度,这解释了为什么只有在等级相同时才会增加 - 因为较小的树被添加到更大的树,这是最大深度实际增加的唯一情况。

【讨论】:

以上是关于等级和路径压缩算法联合中“等级”的重要性是啥?的主要内容,如果未能解决你的问题,请参考以下文章

rocketmq4.4配置日志路径等级

网络安全等级保护安全等级划分与保护

4分制gpa换算表是啥?

红酒等级AOC和AOP是啥意思

模拟赛 妖怪等级考试 题解

matlab改进灰狼算法求解路径优化