让我们说有两个(非不相交的)点集(笛卡尔空间),执行两个集合的最佳案例复杂性算法是什么?
答案 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 |。在最坏的情况下这是最佳的。