我正在尝试对以下递归函数执行渐近分析,以便为数字提供有效的方法。由于在功率为奇数和功率为偶数时具有不同的等式,我无法确定递推方程。我不确定如何处理这种情况。我知道运行时间是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
答案 0 :(得分:3)
无论如何,以下条件成立:
T(n) = T(floor(n/2)) + Θ(1)
其中floor(n)
是不大于n
的最大整数。
由于floor
对结果没有影响,因此该等式非正式地写为:
T(n) = T(n/2) + Θ(1)
你已经猜到了正确的渐近束缚。结果可以用替换法或主定理证明。它留给你锻炼。