并查集入门1

并查集是一种数据结构,用于处理一些不相交集合的合并与查询。在计算机中心网络连接和围棋棋子连通块的问题中,通过查找和合并操作来判断点是否在同一连通块。暴力算法在处理大量数据时效率较低,而更优的算法可以降低时间复杂度,如路径压缩和按秩合并策略。
摘要由CSDN通过智能技术生成

并查集推导在这里插入图片描述

并查集例题

例一

N N N 个计算机中心,开始时都是独立的。后来不断的架设了 M M M 条网线,每条网线把其中的 2 2 2 个计算机中心连接起来。
直接或间接连接的计算机中心都可以相互通信,组成一个网络。
问有多少个连通网络?
在这里插入图片描述

例二

围棋的棋子有黑色和白色两种,相同颜色的棋子如果是上下或左右相邻的,则称这两个棋子是连通的,直接或间接连通的棋子称为一块棋。
现在,不断给出 N N N 个落棋子的信息(颜色、横坐标、纵坐标),问棋盘上有多少块棋?
在这里插入图片描述

形象化地描述过程

建立数学模型

计算机中心、棋子——点
网线、相邻——相邻两点关系——边
网络、块——连通块
在这里插入图片描述

查找操作(Find)

检查:两个点是否在一个连通块
在这里插入图片描述

合并操作(Union)

合并:添加一条连线
在这里插入图片描述

算法

暴力算法

一个连通块的点用相同的id表示
检查:只要看两个点的id是否相同!
在这里插入图片描述
合并1:加边(3,4),两端点在一个连通块,不用处理。
在这里插入图片描述
合并2:加边(5,2),两端点不在一个连通块,怎么办?
在这里插入图片描述
合并2:加边(5,2),两端点不在一个连通块

  1. i d id id 相同
  2. 通块数 − 1 -1 1
    在这里插入图片描述
    参考代码:
    在这里插入图片描述
    “暴力”算法的时间复杂度
    N N N个,边 M M M个:
    •合并的时间复杂度: O ( m i n ( N , M ) ∗ N ) O( min(N,M)*N ) O(min(N,M)N)
    •查找的时间复杂度: O ( 1 ) O(1) O(1)

新方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值