有一些不是很理解

来源:11-2 Quick Find

无心铁憨憨

2019-07-31

在find方法中,p这个变量的定义是有些歧义的,因为在初始化的时候,id数组的第i个位置的元素就是i本身,那么这个p就又可以看作是元素,又可以看作是索引,不太好理解啊,方法上的注释写明的是获取元素p对应的编号,但实际上返回的是id[p]所对应的元素了

写回答

1回答

liuyubobobo

2019-08-01

其实,在id数组中,每一个i,就是既是元素,又是索引啊。如果觉得绕,我建议直接理解成都是索引:)


在并查集中,若干个索引如果合并成为了一个集合,只是用一个索引表示,find(p)表示的就是p这个索引,所在的集合,表示这个集合的那个索引。(也就睡并查集中一棵树的根节点)


至于数据是什么,用户可以在外面定义。比如每个索引都是学号,那每个学号就对应了一个学生的具体数据。这些学生身高体重年龄成绩,并查集不关心。并查集关心这些数据之间所属的几何关系,把这些学生映射成一个从0到n-1的索引,传给并查集就好了:)


可以再听一下这一小节23秒位置的地方。


继续加油!:)

0
2
liuyubobobo
回复
qq_期待_fjAHQT
对滴:)
2020-06-23
共2条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程