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 的渐近上限和下限是多少?的主要内容,如果未能解决你的问题,请参考以下文章
LG2766 最长不下降子序列问题 网络最大流 网络流24题
究竟为什么,快速排序的时间复杂度是n*lg(n)? | 经典面试题