algorithm - 递归关系 : T(n) = 2T(n/2) + log(n)

标签 algorithm recurrence

我有一个递归关系,如下所示:

T(n) = 2T(n/2) + log2 n

我正在使用递归树方法来解决这个问题。最后,我得出了以下等式:

T(n)=(2log2n)(n-1)-(1*2 + 2*22 + ... + k*2 k) 其中 k=log2n。

我正在尝试为这个方程找到一个 theta 符号。但是我找不到求和的封闭公式 (1*2 + 2*22 + ... + k*2k)。我如何找到 T(n) 的大 theta 表示法?

最佳答案

如果您了解一些微积分,您应该能够轻松解决这个问题。

1 + x + x^2 + ... + x^(n+1) = (x^(n+2) - 1)/(x - 1)

乘以x, x + x^2 + x^3 + ... + x^(n + 2) = (x^(n + 3) - x)/(x - 1)

微分 LHS 将得到 x = 2 的级数。微分 RHS 将得到封闭形式。

关于algorithm - 递归关系 : T(n) = 2T(n/2) + log(n),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15260702/

相关文章:

c++ - 似乎至少有两种方法可以进行回溯,这种特定的回溯方法是如何工作的?

algorithm - 三元搜索的递归关系

math - 求解递归 T(n) = T(n/2) + T(n/4) + T(n/8)?

algorithm - 创建交替链的最少切换

java - 更改数组中的位

c - 如何匹配查找对象类型 A 和对象 B 之间的最大对数?

python程序报错(分数背包问题)

algorithm - 如何为动态规划算法找到合适的公式

complexity-theory - c^n + n*(logn)^2 + (10*n)^c 的 Big-O 复杂度

java - 从我的旧算法中找出大 O 符号/递归关系