algorithm - 搜索组合的 2 排序数组

标签 algorithm search binary-search

算法能否在 O( log(n) ) 中搜索组合的 2 排序数组??

组合 2 个排序数组:
是 2 个排序数组的组合..
例子: {1,2,3,4,5} + {2,3,4,5,6,7,} = {1,2,3,4,5,2,3,4,5,6,7}
不幸的是,你不知道它们的边界

*请注意,我知道一个解决方案可以在摊销时间内给出 O( log(n) ),但我只需要一次搜索就需要 O( log(n) )..

编辑:您可以假定不同的元素

谢谢

最佳答案

我认为在最坏的情况下,您必须检查组合数组的每个元素,这给出了 O(n) 最坏情况的复杂度。

直觉是这样的:假设您检查了元素的某些子集,发现它们随位置单调递增,而您要查找的元素不在该子集中。您绝对无法放弃部分搜索空间,因为该元素 - 无论其大小如何 - 仍然可以有效地位于任何未检查的位置。在最坏的情况下,在您检查整个阵列之前,这种情况可能一直为真。

关于algorithm - 搜索组合的 2 排序数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5512224/

相关文章:

Java BFS 算法 - 尝试在 JPanel 上绘制节点

php - 搜索结果将缩写替换为文本

c++ - 加快 C++ 中 double 的比较

java - 分类调度作业

c# - 保证每个项目至少出现一次的变量集的随机选择

jQuery 数据表 'OR' 搜索/过滤

java 在屏幕上搜索图像

java - 通过 BinarySearch 在 ArrayList 中搜索

erlang - 在 Erlang 中实现高效的二分查找

algorithm - 为成对工作的人安排轮类