并查集知识点学习

文章目录

  • [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 

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

相关推荐
xqqxqxxq24 分钟前
树结构技术学习笔记
数据结构·笔记·学习
十月的皮皮1 小时前
C语言学习笔记202606008- 三角形判断(3种方法)
c语言·笔记·学习
XGeFei1 小时前
【Fastapi学习笔记(6)】—— Fastapi文件上传、请求头自动转换
笔记·学习·fastapi
一口吃俩胖子1 小时前
【脉宽调制DCDC功率变换学习笔记024】频域性能
笔记·学习
吃着火锅x唱着歌2 小时前
深度探索C++对象模型 学习笔记 第五章 构造、解构、拷贝语意学(2)
c++·笔记·学习
中小企业实战军师刘孙亮2 小时前
快消纺织五金怎么融合?三大业态协同发展战略思路-佛山鼎策创局破局增长咨询
学习·面试·创业创新·制造·学习方法
Upsy-Daisy2 小时前
Hermes Agent 学习笔记 04:工具调用系统,让 Agent 从“会说”变成“会做”
java·笔记·学习
楼田莉子2 小时前
C++20新特性:协程
开发语言·c++·后端·学习·c++20
weixin_428005302 小时前
C#调用 AI学习从0开始-第2阶段(Function Calling+工具调用智能体)-第9天实战-实现计算器工具
开发语言·学习·c#·functioncalling·ai实现计算器工具
Deepoch2 小时前
Deepoc VLA开发板:除草机器人的持续学习与协同作业系统
人工智能·学习·机器人·开发板·具身模型·deepoc