algorithm - 如何使用替换法解决以下递归问题?

标签 algorithm recurrence

我需要使用替换方法证明以下递归的紧界:

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

我已经到了 Substitution 方法的“猜测”部分,并且知道 T(n)O(n*log(log(n)))通过使用递归树和迭代方法。但是我很难弄清楚如何从 big-O 和 Omega 的归纳步骤开始:

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)

最佳答案

假设

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/k , 通过积分证明 1/x来自 x = k - 1x = k并应用中值定理。 (从视觉上看,宽度为 1 和高度为 1/k 的矩形符合 1/xx = k - 1x = k 的曲线。)

下界类似;使用不等式log k - log (k - 1) <= 1/(k - 1) <= 2/k对于 k >= 2 .

关于algorithm - 如何使用替换法解决以下递归问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42192011/

相关文章:

java - 提取整数的最右边的 N 位

objective-c - 如何根据索引的 "score"随机选择数组索引?

algorithm - 在不影响图的最小生成树的情况下添加尽可能轻的边?

sql - 本月第 3 个 <day_of_week> - MySQL

algorithm - 如何计算此斐波那契算法的效率?

ios - 高效分析 UIImage 中的主色

algorithm - : T(n) = 1 when n = 0 and 2T(n-1) + 1 的展开方法

algorithm - 在 O(log n) 时间内求解非齐次线性递归关系

algorithm - 一个常数的函数递归?

algorithm - 用于查找数据集之间关系的相关算法