在对数时间内以未排序的数组搜索

时间:2011-01-31 10:43:02

标签: arrays search big-o

我目前正在攻读算法入门考试,我遇到了一个我无法解决的问题,问题是:你有一个n个整数的数组,前m个元素是偶数,并且剩下的元素很奇怪。您需要编写一个算法来查找m的值(找到最后一个偶数的索引),并且时间复杂度为O(log m)。

我想做类似于二分搜索的事情,如果奇数就向左移动,如果直到我发现索引是偶数而他的下一个是奇数,那么这个东西将在O(log n)和不是O(log m)。

1 个答案:

答案 0 :(得分:5)

从索引1开始,然后继续加倍索引,直到找到奇数条目。这为你提供了m时间O(log m)的上限。然后进行二元搜索。