arrays - 最快算法的大 O 打印长度为 n 的未排序数组和长度为 m 的排序数组之间的公共(public)元素

标签 arrays algorithm sorting big-o

我的想法是需要 O(nm) 这是因为
1 2 3 4
4 3 2 1
为了找到共同的元素,您将遍历排序数组和未排序数组(在这种情况下,顶部数组已排序)。最坏的情况下,未排序的数组将是排序的数组,除非颠倒。因此,您将比较 1,4,然后是 1,3,然后是 ... 等等。然后您将比较 2,4,然后是 2,3,等等。 因此,你最终会得到 O(n
m)

这是正确的吗?

最佳答案

最快的解决方案是将较小数组的元素放入哈希表中,然后查找较大表中的元素。在实践中,这是 O (max (n, m))。

关于arrays - 最快算法的大 O 打印长度为 n 的未排序数组和长度为 m 的排序数组之间的公共(public)元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39933905/

相关文章:

c# - 使用linq C#从另一个数组中的数组中查找和计数

java - Java中将Element插入到Array的多个类中

ios - block 中的 NSMutableArray addObject 给出空数组

java - 你怎么能以最小的时间复杂度找到总和等于 k ​​的最长子集(powerset)的长度?

css - 使用引导 div 结构的 knockout 排序不起作用

linux - 如何使用 Unix 排序从平局决胜组中选取最高值

javascript - 我需要组合 2 个简单数组并删除重复项

php - 计算欧拉计划的主要因素

algorithm - Com 端口队列延迟计量

Javascript 基本算法 - QUEUE