并查集分为两种操作:合并和查找
查找:查找一个元素的祖先(元素所在树的根节点)
采用路径压缩提高效率
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 }
posted on 2021-01-13 11:15 今天学算法了吗? 阅读(54) 评论(0) 收藏 举报
博客园 © 2004-2025 浙公网安备 33010602011771号 浙ICP备2021040463号-3