算法/图表:维护集合

时间:2013-05-27 21:42:29

标签: algorithm graph-algorithm

在一个应用程序中,我一个接一个地读取无向图的顶点,只有当两个顶点都出现时,边缘才会变得明显。

解析后,我需要逐个快速迭代图中连接的组件。在解析时构建连接组件的选择算法是什么? (在解析时,因为列出边缘相当昂贵)。

我有250个顶点并且很难分辨出每个顶点的边数,但是假设它被100限制(也就是说,我们有&lt; <250 * 100/2 = 12500个边缘)。我还想知道下边数(比如500)会如何影响算法的选择。 (是的,250个顶点并不多,但在这个应用程序中,即使是小的加速计数 - 算法运行多次)。

1 个答案:

答案 0 :(得分:1)

我想到的最简单的解决方案是一些增强的“联合查找”算法。 有关基础知识,请查看wiki article关于它或者由ROBERT SEDGEWICK提供的最新Coursera课程“算法,第1部分” - 它是在“第1周:联盟 - 查找”期间。请查看课程archive(您可以免费注册)。 在第1周的幻灯片45中,您可以获得此算法的基本版本和增强版本的最坏情况时间摘要。