1

我正在尝试对以下递归函数执行渐近分析,以有效地为数字提供动力。由于在功率为奇数和功率为偶数时有不同的方程,我无法确定递推方程。我不确定如何处理这种情况。我知道运行时间是 theta(logn) 所以任何关于如何继续这个结果的建议都将不胜感激。

Recursive-Power(x, n):
if n == 1
   return x
if n is even
   y = Recursive-Power(x, n/2)
   return y*y
else
   y = Recursive-Power(x, (n-1)/2)
   return y*y*x
4

1 回答 1

3

无论如何,以下条件成立:

T(n) = T(floor(n/2)) + Θ(1)

其中floor(n)是不大于 的最大整数n

由于floor对结果没有影响,因此该等式非正式地写为:

T(n) = T(n/2) + Θ(1)

你猜对了渐近界。结果可以用代入法或主定理来证明。它留给你作为练习。

于 2012-02-24T09:07:58.133 回答