┎结构之美┒之并查集

本文通过直观的公司人员结构例子解释了并查集的概念,包括如何判断员工是否属于同一公司,以及如何模拟公司收购过程中的结构变化。通过路径压缩优化查找效率,介绍了并查集在维护图的连通性中的应用。
摘要由CSDN通过智能技术生成

顾名思义,并查集的功能是并和查,但并和查的对象是什么呢?针对的是集合。所以我想了一个例子给大家讲解,咱不说概念性晦涩的东西。通俗易懂,直接来看图:


这是我做的一张两个IT公司的公司人员结构,当然两个公司就不用介绍了,现在问题来了:比如我想知道Steve Ballmerworker4是不是一个公司的该怎么办?我们可以定义一个结构体,里面有个属性叫company来记录一个人的公司,这样就浪费大量的空间;还可以定义一个传统的树形结构来存储每个节点,然后搜索根节点,找到大Boss,然后比较两个Boss如果是同一个人他们就在一个公司,但多次判断两个人在不在同一个公司,或者多次判断某个人在不在某个公司显然又浪费了大量的时间。这时就该我们的并查集登场了,我们假设先把这些人编上号,如下图:


假如我们知道所有的两人的上下级关系,然后我们申请一个set[10]的数组(大于7就可以)我们把所有人存在这个数组里,我们就利用这个set数组记录存在上下级关系的两个人,比如set的下标4就代表worker2(编号为4的人),而set[4]的值代表worker2(编号为4)的上司steve ballmer(编号为2),我们的思想就是找到两个员工顶级

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值