【问题标题】:Whats the best algorithm for Non Disjoint Set Union?非不相交集并集的最佳算法是什么?
【发布时间】:2010-09-14 10:36:08
【问题描述】:

假设有两组(非不相交的)点(笛卡尔空间),执行这两组的并集的最佳情况复杂度算法是什么?

【问题讨论】:

    标签: algorithm union complexity-theory set


    【解决方案1】:

    由于点坐标是任意的并且它们之间没有特殊关系,我不认为这个问题是几何特定问题。有效地将 S1 和 S2 合并为一个新的集合 S 是一个通用问题。

    我知道两种选择:

    1) 当集合存储在hash table(实际上是一个哈希集)中时,联合在平均中取 O(|S1|+|S2|)。

    2) 如果将结构存储在balanced search tree 中,假设 |S1|>|S2|,则可以实现 O(|S1| * Log(|S1|)) 的最坏情况时间。

    【讨论】:

    • 谢谢,我觉得hashtable好像是最实用的一种,试试吧。
    【解决方案2】:

    实际上,如果集合在平衡搜索树中,我认为你可以在 O(|S2| (1+log (|S1|/|S2|)) 中做到,其中 |S1|>=|S2 |。这是最坏情况下的最佳选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-16
      • 1970-01-01
      • 1970-01-01
      • 2018-11-08
      • 2016-03-05
      • 2019-02-10
      • 1970-01-01
      相关资源
      最近更新 更多