并查集---找朋友圈个数问题,连通度问题,等的有效算法

本文介绍了并查集这一数据结构在解决连通度问题,如修路连通城镇和朋友圈个数问题上的应用。并查集由father数组和find、mix函数组成,用于查找根节点和合并不同连通分支。通过路径压缩算法可以提高查找效率,使得在处理大量节点和边的问题时更加高效。示例中展示了如何利用并查集解决朋友圈个数问题,给出了一种初始化和操作方法。
摘要由CSDN通过智能技术生成

数据结构方面,你了解并查集么?

上交05年计算机复试 上机 畅通工程问题:

例题1 修路连通问题 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? 

本质可以理解成图论的连通分支 个数问题,只有一个连通分支,那么 点点互通,两个连通分支,那么需要一条路,。。。。。。

如果用计算机编程实现的话,可能有回路,很多节点,很多边,如何实现呢?那么就引出了并查集!

并查集由一个整数型的数组和两个函数构成。数组father[ ]记录每个点的前导点,函数 find 查找根节点,mix 合并。

  • int father[ ] 数组,记录上级领导。//分别记录了n个节点中,每一个点所在集群(连通分支)的上一级节点,每个节点需要一层层查询自己的根节点来判断自己所在的族群。直到某节点的上个节点是自己,那么他是本族群的根节点。
  • find 函数,返回大长老。就是通过 father【】数组记录的上层领导,来一层层查找本族群的大
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值