给定一个排序数组,是否可以在o(1)中查找元素是否超过n / 2次? 如果中间元素不等于我们正在寻找的元素,那么我们可以肯定地说它存在的时间少于n / 2次或根本不存在。但是如果中间元素等于我们正在寻找的元素,是否可以找到它的出现次数是否超过n / 2次?
答案 0 :(得分:2)
我想你在看O(lg(n))。您需要进行二分查找才能找到元素的第一个和最后一个实例(假设元素精确存在n / 2次)。
答案 1 :(得分:-1)
O(1)并不意味着您只能搜索一次。它是表示小于固定常数的函数的渐近方式。
例如3是O(1),因此您可以搜索中间单元格及其两个相邻单元格,从而知道该元素是否至少存在n / 2次。