并查集

并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。

初始化:

for(int i=0;i<n;i++){
     p[i]=i;//每个点单独为一个集合(自己是自己的爸爸)
}


查:

int find (int x) { 
        return x == p[x]  ?  x: p[x] = find(x) ;//搜索直到找到根节点(祖宗)
}

 

并:

void unity(int x,int y){
          x=find(x); y=find(y);
          p[x]=y;//x的根节点(祖宗)变成y根节点(祖宗)的儿子
}


 

全部评论

相关推荐

12-27 22:29
门头沟学院 Java
点赞 评论 收藏
分享
11-16 01:13
宜春学院 Java
点赞 评论 收藏
分享
程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
985本硕1个中小厂of...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务