文章目录
- [1. 并查集的两个操作](#1. 并查集的两个操作)
- [2. 代码操作](#2. 代码操作)
1. 并查集的两个操作
对于并查集的两个操作,也就是 Find 和Union操作,它们两个作用分别是。
- Find:查询元素属于哪个集合(找根节点);
- Union:合并两个元素所属的集合

针对于Find操作,只需要找当前元素cur_index的父节点p[cur_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
这里具体可以参考这个视频。。。并查集