我对此感到非常沮丧。
在CLRS第三版的第95页(第4.5章)中提到,像
但是我发现像这个网页底部提到完全相同的递归,并说它可以用主定理解决,因为它属于“扩展情况2”,尽管差异是非多项式的。 它变成了
然后我遇到了这个页面,在示例(e)中似乎是扩展情况2的明显应用(递归是
请问有人能够澄清这些矛盾之处,并非常明确地说明什么时候可以使用主定理,什么时候不可以?多项式差异检查什么时候重要,什么时候不重要?扩展情况2是否可用,或者它是否实际上违反了什么?
编辑:
我尝试直接从第二篇论文中解决递归(e),我得到:
在CLRS第三版的第95页(第4.5章)中提到,像
T(n) = 2T(n/2) + n lg n
这样的递归无法用主定理解决,因为差异
f(n)/n^(log_b(a)) = (n lg n)/n^1 = lg n
不是多项式。但是我发现像这个网页底部提到完全相同的递归,并说它可以用主定理解决,因为它属于“扩展情况2”,尽管差异是非多项式的。 它变成了
n lg^2 n
(将f(n)
上的对数因子增加一)。然后我遇到了这个页面,在示例(e)中似乎是扩展情况2的明显应用(递归是
T(n) = 4T(n/2) + n^2 lg n
),但解决方案不是n^2 log^2 n
,而是n^2 log n
! 我错了还是论文错了?请问有人能够澄清这些矛盾之处,并非常明确地说明什么时候可以使用主定理,什么时候不可以?多项式差异检查什么时候重要,什么时候不重要?扩展情况2是否可用,或者它是否实际上违反了什么?
编辑:
我尝试直接从第二篇论文中解决递归(e),我得到:
T(n) = n^2 lg^2(n)/2 + n^2 lg(n)/2
这不是大O符号n^2 lg^2 n
吗?