算法效率;增长函数和Big-O表示

时间:2016-12-12 01:27:35

标签: algorithm

所以这是算法:

Algorithm pow (a, n):
Input: two integers, a (base) and n (exponent)
Output: returns the equivalent of a^n

K ←  n
b ←  1
c ←  a

while k > 0 do
    if k mod 2 = 0 then
        k ←  k / 2
        c ← c * c
    else
        k ←  k − 1
        b ← b * c
return b

确切的增长函数我不确定,但它看起来像log(n)+ C;其中C =执行'else'分支的次数。这里的任何帮助都会很棒!我已经绞尽脑汁待了太长时间才有用......

1 个答案:

答案 0 :(得分:1)

这看起来像是家庭作业,所以我会简短地回答。

我认为你应该尝试显示其他分支的输入小于或等于另一个分支(每次你有一个奇数k并从中减去一个,你得到一个偶数)。然后显示第一个分支是log(n),因此第二个分支必须小于或等于log(n),而2 * log(n)也是log(n)......