并查集知识点学习

文章目录

  • [1. 并查集的两个操作](#1. 并查集的两个操作)
  • [2. 代码操作](#2. 代码操作)

1. 并查集的两个操作

对于并查集的两个操作,也就是 FindUnion操作,它们两个作用分别是。

  1. Find:查询元素属于哪个集合(找根节点);
  2. Union:合并两个元素所属的集合

针对于Find操作,只需要找当前元素cur_index的父节点pcur_index值是否等于cur_index,如果等于,说明这是一个根节点,也就是说找到想要的结果值了;如果不等的话,那么就一直找,直到找到为止;

针对Union操作,也就是合并操作,只需要修改两个集合任意根节点的指向即可;

2. 代码操作

初始状态下,由于各个节点之间不存在任何关系,因此,每个节点都可以把它当作为根节点看待,Python代码初始化如下:

python 复制代码
p = list(range(n)) # n为节点的个数

对于Find和Union操作,其参考代码如下:

python 复制代码
def Find(x):
	if p[x] == x:
		return x
	return Find(p[x])

# 改进
def Find(x):
	if p[x] == x:
		return x
	return p[x] = Find(p[x])

def Union(x,y):
	rootx,rooty = Find(x),Find(y)
	if rootx != rooty:
		p[rootx] = rooty 

这里具体可以参考这个视频。。。并查集

相关推荐
春风解人意6 小时前
从零开始学习嵌入式P32----网络基础之TCP
c语言·网络·学习·tcp/ip
传奇开心果编程8 小时前
【Rust入门知识点学与练】第21课:Trait 进阶 Advanced Traits
开发语言·学习·rust
水巷石子8 小时前
备考系统架构设计师第一天
学习·架构·软考·设计·考试
是隼人8 小时前
buuctf-pwn inndy_echo(32位fmt)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
xian_wwq9 小时前
【学习笔记】深度认知系列-第16讲-提示词工程
人工智能·笔记·学习
洛阳纸贵9 小时前
MATLAB-matlab基础知识
学习·算法·matlab
Vcaker9 小时前
Linux学习25-harbor私有仓库部署
linux·运维·学习
留白_10 小时前
【tableau入门学习】5、筛选器、参考线和集
学习·tableau
youm200310 小时前
认识Redis
redis·笔记·学习
亮工硬件11 小时前
1-11 STM32内部FLASH(数据掉电保存)
笔记·stm32·单片机·嵌入式硬件·学习