【问题标题】:Check sorted non sequential array for duplicates using binary search?使用二进制搜索检查排序的非顺序数组是否有重复项?
【发布时间】:2015-09-28 01:30:23
【问题描述】:

我有一个排序数组,但它不一定是连续的,我需要知道如果它包含任何重复项

Array : | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 8 |

我知道我们可以在 O(n) 中线性遍历检查它是否包含任何重复项,但我想知道是否可以使用二分搜索。

【问题讨论】:

标签: c arrays duplicates binary-search


【解决方案1】:

不,你不能用二分搜索来做到这一点。所有算法都至少需要线性时间。

【讨论】:

  • 谢谢 :) 我还有一个问题。如果我要在同一个数组上运行两个并行搜索指针(一个从开始,一个从结束),那会小于 O(n) 搜索,因为我同时扫描两半。
  • O(n/2)=O(n)。常数因子与大 O 表示法无关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-23
  • 2015-10-09
  • 2021-12-20
相关资源
最近更新 更多