并查集算法总结

并查集是一种高效处理不相交集合合并问题的数据结构,常用于连通子图查询、最小生成树的Karakal算法等。通过初始化不相交集合,找到元素所在集合的代表以及快速合并集合,其基本操作包括初始化、查找和合并。通过判断根节点来确定元素是否属于同一集合。
摘要由CSDN通过智能技术生成

并查集可以称之为不相交集合,在处理查找几个元素是否在同一集合时使用并查集可以达到非常快的处理速度,并查集的思想有一点很重要,就是利用树的思想,表示不同的不相交的集合状态,利用根节点作为代表元素,来对整个集合的数据进行处理。

并查集是一种非常精巧而实用的数据结构,主要用于处理一些不相交集合的合并问题,一些常见的用途有求连通子图、最小生成树的karkal算法、和求最近共同祖先等问题。

使用并查集时,首先会初始化一组不相交的动态集合,一般用其数组对应的下标表示集合中的一个元素。每个集合可能包含一个或几个元素,选出其中的某个元素作为代表。

对每个集合中具体包含了那些元素是不关心的,具体选那个元素作为代表也是不关心的,我们关心的是,对于一个元素,可以很快的找到这个元素所在集合的代表,以及合并两个元素所在的集合。

 

  1. 并查集的基本操作 :

 

  1. init()初始化操作,构建一群根作为自己的森林。
  2. Getf()查找操作,将getf()函数返回对应集合的根节点的编号。
  3. Merge()合并操作,将两个元素对应的集合进行合并,如果是同一集合,则不进行操作,否则对两颗树进行合并。
  4. 然后就是判断根节点是否相同的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值