同余关系的聚类算法?

计算科学 算法 复杂
2021-12-18 01:27:58

假设我们有一个同余关系 在一个数据集中n元素。我正在寻找一种算法来优化排序n元素成m根据给定的同余关系聚类。例如,如果数据包含a,b,c,d,e,f,g,h, 和:

ab, db, eh, fc
数据应分类为以下集群:
{a,b,d}, {c,f}, {e,h}, {g}
如前所述,我正在寻找一种有效的算法来解决这个问题,我相信这可以在O(n),但我似乎无法弄清楚细节。

2个回答

我一直听说这被称为“Union Find”。这里描述了它,以及你可以做的优化来击败天真的实现:http ://www.algorithmist.com/index.php/Union_Find

将您的关系写为稀疏图并使用“连接组件”函数,如下所示