首页 > 代码库 > 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
实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。