并查集

并查集分为两种操作:合并和查找

查找:查找一个元素的祖先(元素所在树的根节点)

采用路径压缩提高效率

1 int getFather(int u){
2   if(father[u]!=u){
3       father[u]=getFather(father[u]);          
4   }
5   return fatuer[u];        
6 }

合并:将两个不相交的集合合并

1 void Union(int x,int y){
2   getFather(father[x])=getFather(y);
3 }
原文地址:https://www.cnblogs.com/liulala2017/p/14271037.html