并查集算法总结

并查集是一种数据结构,用于处理集合的合并与查询。它可以解决元素归属集合、节点关系判断及图有环问题。并查集分为简单、优化、加权值和路径压缩等类型。关键函数包括find()查找元素集合的代表节点和union()合并两个集合。通过代码实现,可进行图的环判断等应用。
摘要由CSDN通过智能技术生成

1、并查集定义

并查集是一种数据结构,常用来描述集合。 在一些应用的问题中,需将n个不同的元素划分成一组不相交的集合。开始时,每个元素自成一格单元素集合,然后按一定顺序将属于同一组的元素的集合合并。其间要反复用到查询某个元素属于哪个集合的运算。适合于描述这类问题的抽象数据类型称为并查集。

2、并查集可以解决的常规问题

(1)某个元素是否属于某个集合;

(2)某两个节点是否属于同一个集合(亲戚关系判断)

(3)判断图是否有环问题

3、并查集的分类

(1)Union-find 简单并查集

(2)Quick-union 优化的并查集

(3)加权值 quick-union(处理了方法2最坏的情况)

(4)路径压缩加权值quick-union

4、常见问题描述和并查集关键函数

常见的问题是给一堆节点之间的连接关系,要我们来判断这些节点可以划分为几个集合,或者给一堆图的节点与边的关系,问我们这个图是否有环等问题。

为了解决类如上述问题,我们采用并查集需要定义两个关键函数:

(1)find(x) :找出元素x所有集合(帮派)的老大;

(2)union(x,y):将元素x和元素y所在的两个集合合并为一个新的集合(小帮派合并为大帮派)

5、并查集的实现

5.1、并查集构建的思想

用比较通俗易懂的话来说,并查集就是一个建立帮派的过程,

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值