并查集
并查集
用集合中的某个元素来代表这个集合,该元素称为集合的代表元。
一个集合内的所有元素组织成以代表元为根的树形结构。
对于每一个元素parent[x]
指向 x 在树形结构上的父亲节点。如果 x 是根节点,则令parent[x] = x
。
对于查找操作,假设需要确定 x 所在的的集合,也就是确定集合的代表元。可以沿着parent[x]
不断在树形结构中向上移动,直到到达根节点。
节点表示:
1 | var maxSize = 1000000 |
初始化时都设置 parent 为自己的标号:
1 | function makeSet(i) { |
查找:
1 | function findSet(i) { |
合并:
1 | function union(i, j) { |