什么是非不相交集合联盟的最佳算法?

时间:2010-09-14 10:36:08

标签: algorithm union complexity-theory set

让我们说有两个(非不相交的)点集(笛卡尔空间),执行两个集合的最佳案例复杂性算法是什么?

2 个答案:

答案 0 :(得分:3)

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

我知道两个选项:

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

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

答案 1 :(得分:1)

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