请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

并集怎么理解

波波老师你好。
对这一段我有疑问:既然这里取的是并集,为什么在两个元素取并集的时候,是取其中一个元素的集合,另一个的集合被扔掉了。
这样并完了之后,10个元素的集合就剩1或0了。
还是说这里的并集并不是数学中的并集?

正在回答

3回答

liuyubobobo 2019-01-09 01:28:27

并查集的并不是把两个元素并在一起,是把两个元素所在的集合并在一起。只不过在初始的条件下,所有的元素都是单独自己各自在一个集合中。随着不断的调用unionElements,元素所在的集合在不断“合并”。


可以尝试使用课程的并查集代码进行如下实验:

public static void main(String[] args) {
    
    // 我直接使用这一张最后的UnionFind5进行试验,但是其他版本的UnionFind也是成立的
    // 我们只创建包含有3个元素的并查集
    UnionFind5 uf = new UnionFind5(3);
    
    uf.unionElements(0, 1); // 合并0所在的集合和1所在的集合
                            // 初始0和1两个元素所在的集合都只有1个元素
                            // 所以合并后的集合只包含两个元素
    uf.unionElements(1, 2); // 和并1所在的集合和2所在的集合
                            // 注意:此时由于1所在的集合有2个元素(0和1)
                            // 所以,合并后,0, 1, 2三个元素在同一个集合中
                            
    // 为了验证,我们查看一下0和2是不是在一个集合中?
    // 输出为true :-)
    System.out.print(uf.isConnected(0, 2));
}


请在仔细理解一下,课程中的并查集的实现,是怎么做到这一点的?:)


加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 慕粉3520842 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-01-09 21:41:27
提问者 慕粉3520842 2019-01-08 20:44:20

昨天主要是看到这两个位置,联系在一起的时候没有理解。

 11-1 什么是并查集 04:06~04:08  数学中的集合类的实现

 11-2 QuickFind中的 10:25 这里实现的时候是取的其中一个的集合。

 是不是也就是说,并查集 就是把两个元素合一起,至于他们所在集合的大小,集合中元素的多少是没有关系的。


0 回复 有任何疑惑可以回复我~
liuyubobobo 2019-01-08 00:59:59

抱歉,我没有特别理解你的问题,具体是哪一段?我在问答区看不见你提问时视频的位置,给我一个视频的具体时间?

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号