(算法)查找两个未排序的数组在Θ(n * logn)时间内是否有任何公共元素而没有排序?

时间:2012-12-02 13:00:25

标签: arrays algorithm

我们有两个未排序的数组,每个数组的长度为n。这些数组包含随机整数。 如何在Θ(n*logn)时间内找到这两个数组是否有任何共同元素?

不允许排序。

1 个答案:

答案 0 :(得分:0)

A B 成为未排序的数组,长度为 n 。 您可以使用@amit建议的哈希表;但是,有一个更快的算法。 由于卡(A)=卡(B),快速交集算法是使用Bloom filter来存储集合,然后使用按位AND运算实现交集。这仍然需要 O(n),但对于隐含在渐近符号中的常量和低阶项,它是一个更好的结果。