并查集
- 并查集指的是在一个集合中的两种操作:并和查;
- 并:将集合 S 中的两个子集 S1 和 S2 合并;S1 和 S2 是没有交集的;
- 查:查看集合 S 中的元素 a 是否在 S 的一个子集中;
- 并查集的初始状态:每个元素构成一个集合,所有集合之间是不相交的;
并查集涉及 2 个操作
- void unionElements(int p, int q) - 并
- 将元素 p 和元素 q 所在的集合合并成一个集合;
- p 和 q 指的是元素在并查集中的位置,p 和 q 指的元素具体是什么并不是并查集关心的,并查集关心 p 和 q 指向的元素是不是在同一个集合;
- boolean isConnected(int p, int q) - 查
- 判断 p 和 q 指向的元素是否在同一个集合;
public interface UF {
int getSize();
boolean isConnected(int p, int q);
void unionElements(int p, int q);
}