这真的是2个很牛叉的算法分析方法,你可以用主方法瞬间估算出算法的复杂度
Master Method
T(n) = aT(n/b)+h(n)
a >=1 ; b >1 ; h(n) : 不参与递归的复杂度函数
判断n^log b (a)与h(n)的大小关系
= Θ(h(n)) :该方法的复杂度为 Θ(h(n)*lg(n))
> Θ(h(n)) :该方法的复杂度为 Θ(n^(log a/log b))
< Θ(h(n)) :该方法复杂度为 Θ(h(n))
这样可以帮助你快速的分析出你得算法的复杂度是否符合要求。
假定问题规模为N时,某递归算法的时间复杂度记为T(N),已知T(1)=1,T(N)=2T(N/2)+N/2,用O表示的时间复杂度为()
A O(N) B O(NlogN) C O(N²) D O(N²logN)
数学
萌伊6342014-09-26
已知算法A的运行时间函数为T(n)=8T(n/2)+n2,其中n表示问题的规模,则该算法的时间复杂度为( )。另已知算法B的运行时间函数为T(n)=XT(n/4)+n2,其中n表示问题的规模。对充分大的n,若要算法B比算法A快,则X的最大值为( )。
A.θ(n)
B.θ(nlgn)
C.θ(n2)
D.θ(n3)
A.15
B.17
C.63
D.65
所属试卷:
答案:D 、C
2条回答
第二问b=4,这时候把四个选项代进去,可以得到log4(63)<log4(64)=3,是小于log2(8)=3的,代入第一问给的三种情况的第三种,这时候复杂度会小于前面的式子。