arrays - (算法)在不排序的情况下,在 Θ(n*logn) 时间内查找两个未排序的数组是否有共同元素?

标签 arrays algorithm

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

不允许排序。

最佳答案

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

关于arrays - (算法)在不排序的情况下,在 Θ(n*logn) 时间内查找两个未排序的数组是否有共同元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13669514/

相关文章:

python - 用Python确定最大公因数

algorithm - 最长公共(public)子序列算法

javascript - 正确更新状态数组中给定索引处的项目

javascript - 计算杠铃获得特定重量所需的重量

ios - 如何根据另一个数组元素更新数组的所有对象

algorithm - 有没有超快的算法可以在图片上找到线条?

mysql - 二维数组的表模式

javascript - 如何计算数组中的重复值并存储在数组中

java - 用于 Dropbox 的脚本以进行自动处理

c++ - 极慢的双线性插值(与 OpenCV 相比)