数组中的二进制搜索,所有元素相等

时间:2013-09-24 10:49:42

标签: time-complexity binary-search

我遇到二进制搜索问题。我正在做的是: -

给定一个排序的数组arr []和一个数字x计算arr []中x的出现,以有效的方式实现这个逻辑的函数将采用????

答案是O(log(n)),因为我使用二进制搜索,但是我有一个数组arr [],所有元素都相等,那么我将无法在O(log(n))时间内得到答案。这将花费O(n)时间。

现在我声称实现此问题的有效算法需要O(n)时间。我的主张是否成立?

1 个答案:

答案 0 :(得分:0)

嗯,有效的算法是:

  1. 找到第一次出现x的索引。
  2. 找到最后一次出现的索引。
  3. 答案是(2) - (1)+ 1
  4. 那仍然是O(log n)。