有一些不是很理解
来源:11-2 Quick Find
无心铁憨憨
2019-07-31
在find方法中,p这个变量的定义是有些歧义的,因为在初始化的时候,id数组的第i个位置的元素就是i本身,那么这个p就又可以看作是元素,又可以看作是索引,不太好理解啊,方法上的注释写明的是获取元素p对应的编号,但实际上返回的是id[p]所对应的元素了
写回答
1回答
-
其实,在id数组中,每一个i,就是既是元素,又是索引啊。如果觉得绕,我建议直接理解成都是索引:)
在并查集中,若干个索引如果合并成为了一个集合,只是用一个索引表示,find(p)表示的就是p这个索引,所在的集合,表示这个集合的那个索引。(也就睡并查集中一棵树的根节点)
至于数据是什么,用户可以在外面定义。比如每个索引都是学号,那每个学号就对应了一个学生的具体数据。这些学生身高体重年龄成绩,并查集不关心。并查集关心这些数据之间所属的几何关系,把这些学生映射成一个从0到n-1的索引,传给并查集就好了:)
可以再听一下这一小节23秒位置的地方。
继续加油!:)
022020-06-23
相似问题