首页 > 编程语言 > 详细

union-find算法

时间:2021-02-28 00:22:55      阅读:25      评论:0      收藏:0      [点我收藏+]

动态连通性
问题描述:输入一列整数对,其中每个整数表示一个某种类型的对象,一对整数p、q可理解为p和q是相连的,假设相连是一种等价关系,其具有:

  • 自反性:p和p是相连的
  • 对称性:如果p和q相连,那么q和p也是相连的
  • 传递性:如果p和q是相连的且q和r是相连的,那么p和r也是相连的
    等价关系能够将对象分为多个等价类,当且仅当两个对象相连时他们才属于同一个等价类。连通性问题要求能够判断给定的整数对p、q是否相连;

union-find算法API

public class UF
UF(int N) 以整数标识(0~N-1)初始化N个触点
void union(int p, int q) 在p和q之间添加一条连接
int find(int p) p所在分量的标识符
boolean connected(int p, int q) 如果p和q存在于同一个分量中则返回true
int count() 连通分量的数量

union-find算法

原文:https://www.cnblogs.com/z-dk/p/14457700.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!