递归函数的时间复杂度每次将输入值除以2/3

时间:2019-02-16 02:57:29

标签: algorithm time-complexity

我知道递归函数的输入除以/ 2的时间复杂度是log n以2为底,我在

上遇到了一些有趣的情况

https://stackoverflow.com/a/42038565/8169857

请帮助我理解有关公式推导的答案中场景背后的逻辑

1 个答案:

答案 0 :(得分:0)

返回到递归树。为什么1/2O(log2(n))?因为如果使用n = 2^k,则应除以k次才能达到1。因此,计算数量最多为k = log2(n)比较。现在假设它是(c-1)/c。因此,如果n = (c/(c-1))^k,我们需要进行log_{c/(c-1)}(n)运算才能到达1

现在,对于任何常量c > 1limit log2(n)/log_{c/(c-1)}(n), n \to \infty等于大于零的常量log_{c/(c-1)}(n) = \Theta(log2(n))。确实,您可以针对任何常量a, b > 1log_a(n) = \Theta(log_b(n))说这句话。现在,证明已完成。