首页 > 代码库 > union-find算法

union-find算法

一些概念:

 


 

问题的输入是接收一列整数对,其中每个整数都表示一个某种类型的对象。一对整数pq可以理解为p和q是相连的。假设相连是一种等价关系,等价关系能够将对象分为多个等价类

可以将对象称之为触点 整数对称为 连接,将等价类称为联通分量,或分量。

当且仅当两个对象是相连的,他们才属于同一个等价类。

 

 问题

 


 

编译程序实现,程序从输入中读取了整数对pq时,如果一直的所有整数都不能说明pq是相连的,那么则将这一对整数写入到输出中。

 

Union-find算法的API


 构造函数UF()用来初始化N个触点

void union(int p, int q)方法用来在qp之间添加一条连接

int find(int p)方法找到p所在分量的标识符

int count ()连同分量的数量

boolean connected(int p , int q)如果p和q存在与同一个分量中,则返回true

 

实现