我认为这很有趣,但我不确定我的解决方案。该算法计算x n
如果我使用主定理,我的理由就是这样
T(n) = 2 T(n/2) + f(n)
但在这种情况下f(n)是1?因为n <= 4是恒定的。给我:
T(n) = Θ(n)
如果我使用替换,我会得到这个答案
T(n) = Θ(n + log(n))
我觉得我做错了很多。有人能指出我正确的方向吗?
答案 0 :(得分:1)
T(n)=Θ(n + log(n))仅为T(n)=Θ(n)。使用theta时,可以省略低阶项(log(n))。
另外,f(n)是O(1)因为你只为每次递归做一次乘法(rek(x,n / 2)* rek(x,(n + 1)/ 2))。
答案 1 :(得分:0)
复杂度为0(n)。说明:在使用简单循环时,可以进行所有乘法运算。并且你没有操作,数字除以*的数字大于const。因此,复杂度约为const * 0(n),即0(n)。