本文主要讲述对Union-Find算法的个人理解,以下Union-Find算法简称UF。
本文主要参考普林斯顿大学 Robert Sedgewick and Kevin Wayne教授的书籍算法四,他们的网站是https://algs4.cs.princeton.edu/15uf/
让我们来看看UF算法在做些什么:
- 首先会初始化N个站点,用0~n-1个整数值代表(N的数据形式如:10,如下)。
- 然后程序读入一对p,q(p,q的数据形式如下)。
4 3
3 8
6 5
9 4
2 1
8 9
5 0
7 2
6 1
1 0
6 7
- 然后程序读第一对4 3,将站点连接,输出4 3。然后读取下一对数据3 8,将站点连接,输出3 8。
- 当程序读到数据8 9时,发现站点已经连接,此时忽视数据8 9(不输出8 9),读取下一行。
- 当全部的对读取完成后,就程序会返回输入的数据对由几部分组成(2 components)。
图示的表达如下
输出的结果如下: