如何使用替换方法解决以下重现?

时间:2017-02-12 19:13:19

标签: algorithm recurrence

我需要使用Substitution方法证明以下重现的严格限制:

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

我已经到了"猜测"替换方法的一部分,通过使用递归树和迭代方法知道T(n)O(n*log(log(n)))。但我无法弄清楚如何从大O和欧米茄的归纳步骤出发:

Assume  T(n/2) <= c*(n/2)log(log(n/2))
T(n) = 2T(n/2) + n/log(n) <= 2c*(n/2)log(log(n/2)) + n/log(n)

Assume  T(n/2) => c*(n/2)log(log(n/2))
T(n) = 2T(n/2) + n/log(n) => 2c*(n/2)log(log(n/2)) + n/log(n)

1 个答案:

答案 0 :(得分:0)

假设

T(n/2) <= (n/2) log log (n/2) = (n/2) log (log n - 1).

然后

T(n) = 2T(n/2) + n/log n
     <= n log (log n - 1) + n/log n
     = n log log n - n (log log n - log (log n - 1) + 1/log n),

因此,通过将log log n - log (log n - 1) >= 1/log n中的log k - log (k - 1) >= 1/k1/x进行整合,可以证明x = k - 1是一般不等式x = k的一个实例,应用中值定理。 (从视觉上看,宽度为1且高度为1/k的矩形位于从1/xx = k - 1的{​​{1}}曲线下方。)

下限相似;对x = k使用不等式log k - log (k - 1) <= 1/(k - 1) <= 2/k