IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 初探并查集 -> 正文阅读

[数据结构与算法]初探并查集

前言:笔者最近学习了算法进阶指南的并查集的章节,写了几道题,也算是有些许感悟,于此写一些。

并查集的作用:一种十分高效地维护各个元素之间的关系的数据结构,常见的关系有:亲戚关系,敌对与盟友关系,捕食与被捕食关系,两个元素之间夹着多少个元素(比较特殊).

并查集的种类:单一关系(普通并查集),多种关系(带权并查集或扩展域并查集)。

带权并查集基本模板(路径压缩和按秩合并):

? ? ? ? ? 注:路径压缩模板一般是不变的,而按秩合并是变化,需要根据题意推导合并公式。

? 路径压缩(均摊复杂度o(logn),优化后o(α(n))):

//路径压缩
int find(int step){
  if(step==fa[step]) return step;
  int root=find(fa[step]);
  d[step]+=d[fa[step]]; //d数值表示这个结点到祖宗结点的某种量,可以是标量也可以是矢量
  return fa[step]=root;
}

? 按秩合并(复杂度o(1)):

//按秩合并
void merge(){
  //需要自己推导
}

常用推导合并公式的方法:

? 1.向量法(适合维护既有方向又有长度的量,比如:A欠Bx元,A捕食B......):利用向量加法法则推导即可。

? ?

? 2.迭代加法(适合维护只有长度的量,比如:A到祖宗结点之间有多少元素):注意初始化时要考虑到底能不能置为1,例如维护这个结点到祖宗结点之间有多少元素就不能初始化为1。参见:银河英雄传说。

分析题目的一些切入点:

? ? 1.首先明确这道题是否能用并查集,这步比较简单,凡是需要维护元素之间的消息的基本都可? ? ? ? 以用到并查集。

? ? 2.明确维护的消息是矢量还是标量,是多关系还是单一关系?

? ? 3.种类并查集维护的是该结点到其祖宗结点的某种信息,从这一角度思考到底维护拿一些具体? ? ? ? 的信息,其后便可以结合迭代加法或者向量法推导合并公式。

经典题目推荐:程序自动分析,狡猾的商人,银河英雄传说,食物链......

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-07 12:17:52  更:2021-12-07 12:20:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 11:43:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码