并查集(Union-Find)是一种用于处理动态连通性问题的高效数据结构。它主要支持两种操作:合并(Union)和查找(Find),因此得名为并查集。会用在求解最小生成树的Kruskal算法里。
找到一篇非常经典的高赞文章,一看就会!
【算法与数据结构】—— 并查集-CSDN博客
Python代码实现:
def find(x):
if Pre[x]!=x:
Pre[x]=find(Pre[x])
return Pre[x]
def union(x,y):
fx=find(x)
fy=find(y)
if fx!=fy:
Pre[x]=min(fx,fy)
Pre[y]=min(fx,fy)