【发布时间】:2018-02-06 07:36:41
【问题描述】:
特别是,我对找到 Theta 复杂度很感兴趣。我可以看到该算法以 log(n) 为界,但考虑到问题大小呈指数增长,我不确定如何继续。
i = n
j = 2
while (i >= 1)
i = i/j
j = 2j
【问题讨论】:
-
你可以从递归关系 $T(n) = 1 + T(n/2)$ (这个程序满足)和主定理计算一个显式公式。 Theta 复杂度正好是 $log(N)$,因为基本情况是 $T(1) = 0$
-
既然 T(n) = aT(n/b) + f(n) 中的因子 'b' 不是这个算法的常数,使用主定理是不是不正确?也就是说,对于每个连续的问题,b 都会增加 2 倍。
-
我的错,你是对的
标签: algorithm time-complexity big-o complexity-theory logarithm