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

【算法基础】并查集⭐⭐⭐⭐⭐【思路巧,代码短,面试常考】

并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中。其特点是看似并不复杂,但数据量极大,若用正常的数据结构来描述的话,往往在空间上过大,计算机无法承受;即使在空间上勉强通过,运行的时间复杂度也极高,根本就不可能在比赛规定的运行时间(1~3秒)内计算出试题需要的结果,只能用并查集来描述。

并查集是一种树型的数据结构,用于处理一些不相交集合(disjoint sets)的合并及查询问题。常常在使用中以森林来表示。

并查集操作:(1)将两个集合合并;(2)询问两个元素是否在一个集合中。并查集可以在近乎O(1)的时间复杂度内支持这两种操作。

一、并查集基本原理

并查集的核心思想是用一棵树来表示一个集合。树根的编号就是整个集合的编号。有一个p数组,存储每个节点的父节点,p[x] = a表示节点x的父节点是节点a。
在这里插入图片描述
解决并查集问题需要解决如下几个子问题:
(1)如何让判断找到了树根(停止回溯):if(p[x] == x),表示树根的父节点用本身表示,除了树根之外,任何节点的父亲

http://www.lryc.cn/news/11967.html

相关文章:

  • 人工智能轨道交通行业周刊-第34期(2023.2.13-2.19)
  • Retrofit 网络框架源码解析(二)
  • SQL Server 2008新特性——更改跟踪
  • 四六级真题长难句分析与应用
  • 华为OD机试 - 玩牌高手(Python) | 机试题算法+思路 【2023】
  • 【论文阅读】 Few-shot object detection via Feature Reweighting
  • 现代卷积神经网络经典架构图
  • 有关eclipse的使用tips
  • Mybatis(4)之CRUD
  • OSG三维渲染引擎编程学习之五十七:“第五章:OSG场景渲染” 之 “5.15 光照”
  • [教你传话,表白,写信]
  • 物联网在智慧农业中的应用
  • 【RabbitMQ】Windows 安装 RabbitMQ
  • MQTT8-MQTT在智能汽车公司的实际应用
  • 在elasticsearch8.3中安装elasticsearch-analysis-ik中文分词插件
  • 初识K8s
  • 搭建企业级docker仓库—Harbor
  • 【Linux】shell中运算符(整数、字符串)
  • 【从零单排Golang】第八话:通过cache缓存模块示范interface该怎么用
  • 解析从Linux零拷贝深入了解Linux-I/O(上)
  • JavaScript系列之公有、私有和静态属性和方法
  • 过滤器与拦截器
  • spring boot 和cloud 版本升级
  • untiy 录制网络摄像头视频并保存到本地文件
  • 微服务架构设计模式-(15)部署
  • Redis:数据结构
  • 2.18 设置language和中文输入法
  • 图解LeetCode——剑指 Offer 28. 对称的二叉树
  • Qt Desginer布局方法
  • C/C++、Java、Python的比较及学习(3)