并查集知识点学习

文章目录

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

1. 并查集的两个操作

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

  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 

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

相关推荐
xier_ran15 小时前
【infra之路】AI 编译器学习笔记(十三):AI 编译器全景——TVM、XLA、IREE 与其他
人工智能·笔记·学习
连山齐名15 小时前
ai应用开发的学习笔记
服务器·笔记·学习
xier_ran16 小时前
【infra之路】AI 编译器学习笔记(十四):为什么要 tiling,以及矩阵计算单元的“固定“
人工智能·笔记·学习
燕落南枝16 小时前
HTML 学习:辅助标签 label 与字符实体
前端·学习·html
hackchen16 小时前
LangChain 学习第 3 课 - 输出解析器(Output Parser)
数据库·学习·langchain
wangguanghou117 小时前
【学习成长】深入解析721学习成长模型:70-20-10法则的实践指南与避坑手册
学习
其实防守也摸鱼17 小时前
Linux文本处理命令理论学习
linux·服务器·前端·数据库·sql·学习·安全
dadaobusi17 小时前
学习: Triton
学习
一条泥憨鱼17 小时前
【计算机网络】| 从 MAC 到 NAT 的跨网段通信全链路
服务器·网络·学习·计算机网络·macos
miao_0v017 小时前
10.20任务
学习·个人开发