当前位置: 首页 > news >正文

做企业网站的好处新媒体seo培训

做企业网站的好处,新媒体seo培训,chinacd.wordpress.com,微软做网站文章目录 并查集1.朴素版本2.路径压缩3.按秩合并4.启发式合并5.练习题 并查集 1.朴素版本 1. 并查集解决的是连通块的问题,常见操作有,判断两个元素是否在同一个连通块当中,两个非同一连通块的元素合并到一个连通块当中。 并查集和堆的结构…

在这里插入图片描述

文章目录

  • 并查集
    • 1.朴素版本
    • 2.路径压缩
    • 3.按秩合并
    • 4.启发式合并
    • 5.练习题


并查集

1.朴素版本

1.
并查集解决的是连通块的问题,常见操作有,判断两个元素是否在同一个连通块当中,两个非同一连通块的元素合并到一个连通块当中。
并查集和堆的结构类似,都是采用数组存储下一个节点的下标的方式来抽象成一棵树,只不过堆的数组对应的是一棵二叉树,而并查集的数组对应的是森林,可以抽象成很多的树,并且每棵树也不一定是二叉树,任意形状均可。
初始化数组时,数组存储内容均为自己的下标,表示每个节点的父节点都是自己,previous译为先前的,在这里正好表示某一个元素的父节点元素下标是多少。
合并两个节点,实际上是合并这两个节点分别对应的根节点,这里可能会有人有疑问,为什么不合并非根节点呢?如果你合并非根节点,让非根节点指向另一个非根节点,那么2棵树直接变成三棵树了。并查集合并算法的性能瓶颈其实是在找根的操作上,如果一棵树的高度是N,那么找根的时间复杂度其实就是O(N)了,这样的效率实际上是很低的,所以后面会进行三种方式的优化。
统计并查集中树的个数其实也比较简单,只需要统计根节点是自己的节点个数即可。

在这里插入图片描述

2.路径压缩

如果我们能够缩短查找根节点过程中的路径,那么合并两棵树的效率就会很高,如下图所示,如果路径压缩到一层,那么查找根的时间复杂度就接近于O(1),所以路径压缩这种方式效率是很高的。
下面的图其实主要想给大家展示路径压缩的好处,但在我们的代码里面,左边这种单分支情况的树一定是不会出现的,因为每次任意两棵树合并时,在查找根期间都会做路径压缩,从节点个数为1开始进行任意树的合并,一定是不会出现左边这种4个节点串起来的情况的,所以下面的图仅仅是为了展示路径压缩的优点而已。

在这里插入图片描述
下面是递归版本的压缩路径
在这里插入图片描述
下面是循环版本的压缩路径

在这里插入图片描述

3.按秩合并

秩的英文是rank,rank还有排名等意思,但在并查集这里秩其实表示的是树的高度,当两棵树合并时,为了让合并后的效率更高,我们通常选择将树高度小于等于另一棵树的树主动合并到较高的那棵树上去,这样有一个好处,树整体的高度可能不会改变或者是增加1,这两种情况都是比较好的。
那么如何维护树的高度呢?我们只需要一个rnk数组即可,在合并的时候判断两棵树的高低,将较小的树合并到较大树上,同时维护rnk数组,如果两棵树高度相等,合并操作无所谓,例如x合并到y上,那么y的高度需要+1,x的高度不变。时间复杂度近似于O(logN)。

在这里插入图片描述

4.启发式合并

启发式合并与按秩合并较为相似,只不过启发式合并是按照树中节点个数的多少来合并的,在合并时尽量让节点个数较少的树合并到节点个数较多的树上,这种优化方式的时间复杂度和按秩合并是近似的,都是O(logN)。如何维护树的节点个数大小呢?只需要维护一个sz数组即可。
这两种方式虽然没有路径压缩那么优秀,但其实在oj里面从消耗时间上来看,其实三种优化方式都是差不多的,因为题目所给数据构成的树可能不是很高,所以O(logN)渐进于O(1)

在这里插入图片描述

5.练习题

547.省份数量

该题给出了邻接矩阵,我们只需要遍历上半部分,将相连的城市合并到一个连通块当中,最后统计并查集中连通块的总数即为省份的数量。
压缩路径,按秩合并,启发式合并,在下面这道题中你都可以试试,优化效果还是很明显的

在这里插入图片描述

990.等式方程的可满足性

为了让代码看起来优雅一些,用了递归的写法,但时间复杂度不太理想,可能因为栈调用太深了,栈的建立和销毁也耗费了大部分时间,我用循环版的压缩路径试过,3ms即可AC,效果还是比较理想的

在这里插入图片描述

http://www.hkea.cn/news/158989/

相关文章:

  • 在工商网上怎么注册公司seo优化博客
  • 免费的小程序怎么赚钱历下区百度seo
  • 河北石家庄最新疫情最新消息优化防疫政策
  • 一站式做网站哪家强新闻小学生摘抄
  • 江西南昌网站建设公司哪家好谷歌google 官网下载
  • 公司网站用什么开发百度指数怎么用
  • 建站主机 wordpress济南网站万词优化
  • 哈尔滨app开发seo自学网官网
  • 网站答辩ppt怎么做全网关键词云在哪里看
  • 网站建设 视频seo关键词词库
  • 网站应用软件设计成都网站建设技术外包
  • 用哪个软件做网站网址查询域名解析
  • 网站安全优化域名停靠浏览器
  • 我做中医培训去哪个网站找学员谷歌排名算法
  • 如何将网站让百度收录网店培训班
  • wordpress旧版页面编辑界面百度seo推广计划类型包括
  • 网站建设茶店网网站换友链平台
  • 珠海建设工程信息网站网络营销百度百科
  • 帮别人做网站推广犯法吗关键词排名网站
  • 建设通网站是政府的么高端网站定制设计
  • 玉溪做网站的公司夸克搜索网页版
  • wordpress导航主题haowseo挂机赚钱
  • 广州做家教的网站深圳网络推广招聘
  • 锐捷网络公司排名seo技术介绍
  • 新圩做网站公司拼多多代运营一般多少钱
  • 免费网站可以做cpa?短视频营销的优势
  • b2b外贸营销型网站如何做电商赚钱
  • 建设无障碍网站seo分析报告怎么写
  • 电子商务网站开发进什么科目模板自助建站
  • 威海市住房和城乡建设局官方网站北京seo营销公司