【问题标题】:Time complexity for modified binary search which calculates the mid as high - 2修改二分查找的时间复杂度,计算中间值高 - 2
【发布时间】:2017-10-29 21:13:44
【问题描述】:

我必须找出二进制搜索的时间复杂度,它计算分割点为 mid = high - 2(而不是 mid = (low + high)/2) 以便知道修改后的算法会慢多少或快多少

【问题讨论】:

    标签: algorithm search time-complexity binary-search asymptotic-complexity


    【解决方案1】:

    最坏的情况是搜索的项目是第一个。在这种情况下,由于您总是从 n 中减去 2,因此您将有大约 n/2 步,这是一个线性复杂度。最好的情况是搜索的项目正好在 n-2,这将需要一个恒定的复杂度。平均复杂度,假设 n -> 无穷大也是线性的。

    【讨论】:

    • 感谢您的回答!
    【解决方案2】:

    提示:您可以根据二分搜索的递归公式得出答案。

    我们有 T(n) = T(floor(n/2)) + O(1)

    由于我们分成相等的两半,所以我们有 floor(n/2)。您应该重写给定的公式来描述修改后的版本。此外,您应该使用 Akra-Bazzi 方法来求解修改后的版本的递归公式,因为您正在分成两个不平衡的半部分。

    【讨论】:

    • 谢谢,帮了大忙
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-03
    相关资源
    最近更新 更多