【问题标题】:searching in an unsorted array in logrithmic time以对数时间在未排序的数组中搜索
【发布时间】:2011-06-18 12:11:21
【问题描述】:

我目前正在学习算法简介的考试,我遇到了一个我无法真正解决的问题,问题是:你有一个由 n 个整数组成的数组,前 m 个元素是偶数,并且其余元素是奇数。你需要写一个求m值的算法(求最后一个偶数的索引),时间复杂度为O(log m)。

我想做一些类似于二分搜索的事情,如果奇数则简单地向左移动,如果偶数则向右移动直到我找到偶数的索引并且他的下一个索引是奇数,但这件事在 O(log n) 和不是 O(log m)。

【问题讨论】:

    标签: arrays search big-o


    【解决方案1】:

    从索引 1 开始,然后继续将索引加倍,直到找到一个奇数条目。这为您提供了时间 O(log m) 中 m 的上限。然后进行二分查找。

    【讨论】:

    • 二进制搜索在最坏的情况下可能需要 O(log n)。如果我错了,请纠正我。
    • @Abody97 - 我显然是要在先前确定的 m 上界限制的范围内进行二分搜索,最多为 2m。所以二分查找也是O(log(m))。
    • 哦,是的,对此感到抱歉:) 我不知道m 的上限最多为2m,完全忘记了。再次抱歉:)
    猜你喜欢
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 2019-02-01
    • 2019-08-19
    • 2012-08-28
    • 2020-08-17
    相关资源
    最近更新 更多