root element is missing是什么意思_什么是并查集?有哪些应用?

并查集是一种数据结构,用于合并和查找元素所属的集合。它通过集合合并操作(并)和元素查找操作(查)来工作。实现上,可以使用数组表示并查集,通过代表元素来简化合并和查找。通过路径压缩优化,可以提高查找效率到近似 O(1)。并查集常用于解决图的连通性问题和集合相关计数问题。
摘要由CSDN通过智能技术生成

163402ea799e941f7f3bacb78bf9967e.png

作者 | P.yh

来源 | 五分钟学算法

什么是并查集

并查集可以看作是一个数据结构,如果你根本没有听说过这个数据结构,那么你第一眼看到 “并查集” 这三个字的时候,脑海里会浮现一个什么样的数据结构呢?

基于我们之前所学的知识来思考并推导一个问题,这相比直接去理解,你会收获得更多。

我们就来逐字拆解一下,并、查、集 这个三个字,其中前面两个字都是动词,第三个字是个名词。

我们先看名词,因为只有知道了这个东西是什么,才能去理解它能干什么

集就是集合,我们中学时期就学过这个东西,集合用大白话说就是将一堆元素没有顺序地摆放在同一个地方。

现在我们已经知道了其实并查集本质就是集合,那它能做什么呢?这就要看前两个字 - “并” 和 “查”,集合的一些操作想必你肯定记得,例如,交集,并集等等,这里的 “并” 其实就指的是并集操作,两个集合合并后就会变成一个集合,如下所示:

{1,3,5,7} U {2,4,6,8} = {1,2,3,4,5,6,7,8}

那 “查” 又是什么呢?集合本身只是容器,我们最终还是要知道里面存的是什么元素,因此这里的 “查” 是对于集合中存放的元素来说的,我们不仅要查找这个元素在不在集合中,我们还要确定这个元素是在哪个集合中,对于前一个操作,Java 中普通的 set 就可以做到,但是对于后一个操作,仅仅使用一个 set,比较难做到。

好了,现在你应该知道并查集是什么,以及它能干什么了,总结下来就是:

  • 并查集可以进行集合合并的操作(并)

  • 并查集可以查找元素在哪个集合中(查)

  • 并查集维护的是一堆集合(集)

知道了这些后,并查集的概念就清楚了。

并查集的实现

仅仅靠嘴说,还是差点意思,作为程序员,必然是要将我们了解的东西用代码的形式呈现出来。

相信通过上面的表述,你已经知道,并查集维护的是一堆集合而不是一个集合,用什么样的数据结构表示并查集?set 吗?这里有两个东西我们是必须要知道的,元素的值,集合的标号,一个元素仅可能同时存在于一个集合中,元素对集合是多对一的关系,这么看来我们可以用一个健值对的结构来表示并查集,Map 是肯定可以,但是如果对元素本身没有特定要求的话,我们可以使用数组,这样速度更快,使用起来也更加简单,可以看看下面的例子:

{
    0}, {
    1}, {
    2}, {
    3}, {
    4}, {
    5} =&g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值