T(n) = 2T(n/2) + n lg lg n 的渐近上限和下限是多少?

Posted

技术标签:

【中文标题】T(n) = 2T(n/2) + n lg lg n 的渐近上限和下限是多少?【英文标题】:What are the asymptotic upper and lower bounds for T(n) = 2T(n/2) + n lg lg n? 【发布时间】:2011-06-14 12:38:57 【问题描述】:

递归关系

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

(其中 lg 是以 2 为底的对数)可以使用 master theorem 解决,但我不太确定答案。我找到了我的答案,但为了防止信息级联,我没有在这里提及。请帮我找到上面的大 O 和 Ω。

【问题讨论】:

我认为你最好发表你自己的想法,现在看起来你只是逐字地提出你的作业而没有自己做任何事情。顺便说一句,nlglgn 应该是什么? @Bart 提到的意思是“不仅要发布结果,还要发布你的推理”。不要害怕犯错,因为这比懒惰要好得多,而且也不在乎影响他人,因为这里的很多人都是影响老板的冠军,并且知道这个行业。 猜测一下,nlglgn 应该是 n * log (log(n)) @borrible,是的,你很可能是正确的,但如果 OP 更清楚地表达他/她自己,这并没有什么坏处。 嗨,很抱歉有歧义。 lg n 表示底数为 2。此外,我得到以下内容:big O (n^2) 和 omega is nlog(base10)n 。 【参考方案1】:

主定理中的 3 种情况都不适用

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

(任意基数都无所谓)

案例 1:f(n)=n log(log n) 比 n“大”log2 2=n1

案例2:f(n)不适合n logk(n)

情况3:f(n)小于n1+e

U(n)=2 U(n/2) + n log n
L(n)=2 L(n/2) + n

您可以证明:U(n) >= T(n)L(n) <= T(n)。所以 U 给出了 T 的上限,L 给出了 T 的下限。

对 U(n) 应用主定理,得到

案例 2:f(n)=n log n=Θ(n1 log1 n) 因此 U(n)=Θ(n log 2 n)

对 L(n) 应用主定理,得到

案例 2:f(n)=n =Θ(n1 log0 n) 因此 L(n)=Θ(n log n)

因为L(n)<=T(n)<=U(n) 所以 T(n)=O(n log2 n) 和 T(n)=Ω(n log n)

另外,请注意 O(log2n)=O((log n)/log 2)=O((log n) * c)=O(log n)。

【讨论】:

以上是关于T(n) = 2T(n/2) + n lg lg n 的渐近上限和下限是多少?的主要内容,如果未能解决你的问题,请参考以下文章

Strassen优化矩阵乘法(复杂度O(n^lg7))

LG2766 最长不下降子序列问题 网络最大流 网络流24题

究竟为什么,快速排序的时间复杂度是n*lg(n)? | 经典面试题

求n^n和n!的最左边的数字

求解 T(n) = 2T(n/2) + log n [关闭]

如何解决这个递归关系:T(n) = 4*T(sqrt(n)) + n