首页 > 其他分享 >为什么并查集路径压缩不需要维护rank?

为什么并查集路径压缩不需要维护rank?

时间:2024-08-07 23:05:17浏览次数:9  
标签:路径 压缩 查集 rank 操作 维护

在基于rank进行优化的并查集中,路径压缩确实不需要维护rank数组。这是因为路径压缩和rank优化有不同的目的和作用机制。让我们详细解释一下原因:

  1. Rank优化的目的:Rank优化的主要目的是在合并两个集合时,让较小的树成为较大的树的子树,以保持树的平衡性。这样可以避免树变得过于深,从而减少查找操作的时间复杂度。

  2. 路径压缩的目的:路径压缩的目的是在查找操作时,将路径上的所有节点直接连接到根节点。这样可以大大减少后续查找操作的时间复杂度。

  3. 为什么路径压缩不需要维护rank:路径压缩会改变树的结构,但不会改变树中元素的相对关系。虽然压缩后树的实际深度可能会改变,但这并不影响union操作时的决策。Union操作仍然基于原始的rank值来决定哪个树应该成为另一个的子树。实际上,rank在这里更像是一个启发式的估计,而不是树的精确高度。

  4. rank的近似性:在进行路径压缩后,rank不再精确反映树的高度,而是成为了树高度的上界。这个近似值仍然足以用于union操作的决策,因为它仍然能够大致反映树的规模。

  5. 效率考虑:如果在每次路径压缩后都更新rank,会增加额外的计算开销。由于rank的近似性已经足够用于优化,这种额外的开销是不必要的。

  6. 理论保证:即使不维护精确的rank,结合路径压缩和按秩合并的并查集操作仍然能保证接近O(1)的均摊时间复杂度。

总结:路径压缩不需要维护rank数组,因为rank在这里主要用作一个启发式估计,用于union操作的决策。路径压缩虽然改变了树的结构,但不影响元素间的相对关系,因此不需要精确更新rank。这种方法既保持了操作的高效性,又维持了并查集的优秀性能。

标签:路径,压缩,查集,rank,操作,维护
From: https://www.cnblogs.com/lyraUU/p/18348043

相关文章

  • 并查集详解
    并查集并查集是一种树形数据结构,用于处理一些不相交集合的合并及查询问题(即所谓的并、查)。具体详解见此并查集本身是真的太板了。。普及-以下的题基本全是板。直接见例题吧:板子一【模板】并查集题目描述如题,现在有一个并查集,你需要完成合并和查询操作。【】输入格式】第......
  • 不能在此路径中使用此配置节,如果在父级别上锁定了该节,便会出现这种情况的解决办法
    原文链接:https://www.pageadmin.net/help/96.cshtml问题描述:打开网站一直提示“不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的(overrideModeDefault="Deny")”具体如下图:问题分析:出现这个错误是因为IIS7采用了更安全的web.con......
  • 路径规划算法之Dijistra算法、A*算法
    引言记录一下这段时间了解到的路径规划算法,并进行代码的实现目前主流的路径规划算法可以分为:基于采样,如RRT、RRT*、PRM基于节点,如Dijistra、A、D基于数学模型,如MILP、NLP基于生物启发式,如NN、GN多融合,如PRM-NodebasedDijistraalgorithm问题描述Dijistra算法主要......
  • 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认
    原文链接:https://www.cnblogs.com/wwssgg/p/17984105今天运行项目的时候出现了这个错误....查了一下解决的方法。 具体方案如下: 1、先确认安装IIS的时候有没有装Asp.Net,如果没安装的话,安装上即可。(XTHS:采用这步,就可以了!) 2、IIS采用了更安全的web.config管理机制,默......
  • 数据结构 - 并查集路径压缩
    ......
  • AOE网及其求解关键路径
    全称ActivityonEdgeNetwork边活动网特点仅存在有向无环图 作用用于记录完成整个工程至少花费的时间==>哪条路径最耗时?也就是“关键路径”AOE网元素介绍关键活动关键路径上的活动称为关键活动,关键活动是不允许拖延的(普通活动可以拖延,拖延时间=最晚开始时......
  • 记一次SpringBoot配置静态资源路径找不到资源的解决
    静态资源路径配置代码问题在nacos里面配置路径时,路径的最后一个/没带,导致无法查询到静态资源,查询资料得到的处理结果是也就是说有是会查询子目录的,没有只查询这个目录API解释翻译:添加一个或多个资源位置,从中提供静态内容。每个位置都必须指向一个有效的目录。多个位置......
  • 代码随想录算法训练营第62天 | 最短路径:dijkstra(堆优化版)+ Bellman_ford算法
    47.参加科学大会https://kamacoder.com/problempage.php?pid=1047dijkstra(堆优化版)精讲https://www.programmercarl.com/kamacoder/0047.参会dijkstra堆.html#思路94.城市间货物运输Ihttps://kamacoder.com/problempage.php?pid=1152Bellman_ford算法精讲https://www.pr......
  • wordpress教程栏目给大家介绍自定义wordpress文件上传路径的方法
    自WordPress3.5版本开始,隐藏了后台媒体设置页面的“默认上传路径和文件的完整URL地址”选项,可以通过下面的代码将该选项调出来。将下面的代码添加到当前主题functions.php文件中,就可以调出该选项:if(get_option('upload_path')=='wp-content/uploads'||get_op......
  • 并查集
    并查集在每个集合中选择一个元素,作为整个集合的代表。使用一个树形结构存储每个集合,树上的每个节点都是一个元素,树根是集合的代表元素。存储时,记录每个节点\(x\)的父亲\(fa[x]\)。查询\(x\)和\(y\)是否在同一集合时,分别从两个点出发,寻找它们的树根。若树根相同,则说明\(......