确定增长顺序

时间:2020-05-24 18:24:51

标签: algorithm

我正在练习增长顺序,但无法确定以下功能的增长顺序:

def ri(na):
    if na <= 1:
         return na
    def han(na):
         i = 1
         while i < na:
             i *= 2
         return i
    return ri(na/2) + ri(na/2) + han(na-2)

我相信函数han具有一个增长顺序$ \ Theta(n)= log(n)$,但是我不确定在添加ri(na / 2)时如何考虑这一点。如果有人可以帮助我弄清楚如何计算运行时间,我将不胜感激。非常感谢!

1 个答案:

答案 0 :(得分:1)

han函数的时间复杂度为Theta(log(n))(每次i2乘以)。因此,ri的时间复杂度为T(n) = 2T(n/2) + Theta(log(n))。使用the master theorem,我们可以说T(n) = Theta(n)

相关问题