算法导论习题—主方法求渐进紧确界递归树方法

Posted 之墨_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法导论习题—主方法求渐进紧确界递归树方法相关的知识,希望对你有一定的参考价值。

算法导论习题—主方法求渐进紧确界、递归树方法

4.5-1

对下列递归式,使用主方法求出渐进紧确界

解:

a. T ( n ) = 2 T ( n / 4 ) + 1 T ( n ) = 2 T ( n / 4 ) + 1 T(n)=2T(n/4)+1

根据主定理

a = 2 , b = 4 , f ( n ) = 1 , n log ⁡ b a = n log ⁡ 4 2 = n 0.5 a=2,b=4,f(n)=1,n^\\log_ba=n^\\log_42=n^0.5 a=2,b=4,f(n)=1,nlogba=nlog42=n0.5
对于常数 ϵ = 0.5 \\epsilon=0.5 ϵ=0.5,有
f ( n ) = 1 = O ( n log ⁡ b a − ϵ ) = O ( n 0.5 − 0.5 ) = O ( 1 ) f(n)=1=O(n^\\log_ba-\\epsilon)=O(n^0.5-0.5)=O(1) f(n)=1=O(nlogbaϵ)=O(n0.50.5)=O(1)

符合主定理情况1,所以 T ( n ) = Θ ( n log ⁡ b a ) = Θ ( n ) T(n)=\\Theta(n^\\log_ba)=\\Theta(\\sqrtn) T(n)=Θ(nlogba)=Θ(n )

b. T ( n ) = 2 T ( n / 4 ) + n T ( n ) = 2 T ( n / 4 ) +\\sqrtn T(n)=2T(n/4)+n

根据主定理
a = 2 , b = 4 , f ( n ) = n , n log ⁡ b a = n log ⁡ 4 2 = n a=2,b=4,f(n)=\\sqrtn,n^\\log_ba=n^\\log_42=\\sqrtn a=2,b=4,f(n)=n ,nlogba=nlog42=n
所以
f ( n ) = n = Θ ( n log ⁡ b a ) = Θ ( n ) f(n)=\\sqrtn=\\Theta(n^\\log_ba)=\\Theta(\\sqrtn) f(n)=n =Θ(nlogba)=Θ(n )
符合主定理情况2,所以 T ( n ) = Θ ( n log ⁡ b a lg ⁡ n ) = Θ ( n lg ⁡ n ) T(n)=\\Theta(n^\\log_ba\\lgn)=\\Theta(\\sqrtn\\lgn) T(n)=Θ(nlogbalgn)=Θ(n lgn)

c. T ( n ) = 2 T ( n / 4 ) + n T ( n ) = 2 T ( n / 4 ) + n T(n)=2T(n/4)+n

根据主定理
a = 2 , b = 4 , f ( n ) = n , n log ⁡ b a = n log ⁡ 4 2 = n a=2,b=4,f(n)=n,n^\\log_ba=n^\\log_42=\\sqrtn a=2,b=4,f(n)=n,nlogba=nlog42=n
对于常数 ϵ = 1 2 \\epsilon=\\frac12 ϵ=21,有 f ( n ) = n = Ω ( n log ⁡ b a + ϵ ) = Ω ( n ) f(n)=n=\\Omega(n^\\log_ba+\\epsilon)=\\Omega(n) f(n)=n=Ω(nlogba+ϵ)=Ω(n),且对于 1 2 ≤ c < 1 \\frac12\\leqc\\lt1 21以上是关于算法导论习题—主方法求渐进紧确界递归树方法的主要内容,如果未能解决你的问题,请参考以下文章

算法导论 第三章 函数的增长

算法分析之渐进符号

对渐进符号的理解

算法分析(渐进分析)

算法导论中,为啥合并排序的递归树的高度为lgn?

算法导论OJ习题— 数据库查询(红黑树实现AVL树实现)