不想交集的概念
这就是离散数学里面学过的啊!!
离散数学我们学校大一下学期就学了的
不想交集
DIsjoin set
为什么叫“并查集”
因为这个集合的操作更多的是并和查
所以叫并查集
DisjoinSet 和set有什么区别
相同的地方:
都是一堆的集合
不相同的地方
作为集合,一般地集合主要考虑,我这个集合有哪些元素,根据集合查元素
不相交集:根据元素查到那个集合
不相交集的操作
不想交集是根据任何一个元素查集合
一般采用线性结构
数组的元素就可以直接找 到元素
子集如何划分
可以用链式结构也可以用顺序结构
b的元素存一下我是a的下标
a可以存一个零,表示我是这个集合的代表
为什么有find和uion
并查集:每个元素的地址
让每个元素向上找到树根,树根代表集合
采用隐士链
有多少元素就多少个数组
b的父亲是1,1是a
存这个元素是什么,还要存这个父亲的编号
以g作为树根的集合并到树根的上面即可,这是并操作
不相交集的操作
Union by size:
用大小(元素的多少)来求集
Union by height(rank)
按高(秩)求并 求并集
path compression
路径压缩