Master theorem
- substitution method
- recursion tree method
- master method
![](https://img-blog.csdnimg.cn/20190625164758238.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0lyaXNfY3l5,size_16,color_FFFFFF,t_70)
Exercises
Which one of the following is the lowest upper bound of T(n) for the following recursion T ( n ) = 2 T ( n ) + l o g n T(n)=2T(\sqrt n)+logn T(n)=2T(n)+logn ? (4分) A
A. O ( l o g n l o g l o g n ) O(lognloglogn) O(lognloglogn)
B. O ( l o g 2 n ) O(log^2n) O(log2n)
C. O ( n l o g n ) O(nlogn) O(nlogn)
D. O ( n 2 ) O(n^2) O(n2)
设 m = l o g n m = logn m=logn, 则 2 m = n 2^m = n 2m=n.
T ( 2 m ) = 2 T ( 2 m / 2 ) + m T(2^m) = 2T(2^{m/2}) + m T(2m)=2T(2m/2)+m
设 G ( m ) = T ( 2 m ) G(m) = T(2^m) G(m)=T(2m),则原式转化为 G ( m ) = 2 G ( m / 2 ) + m G(m) = 2G(m/2) + m G(m)=2G(m/2)+m
根据主定理, a = 2 , b = 2 , k = 1 , p = 0. a = b k a = 2, b = 2, k = 1, p = 0. a = b^k a=2,b=2,k=1,p=0.a=bk,满足条件2,所以算法复杂度为 O ( m l o g m ) O(mlogm) O(mlogm)
又因为 m = l o g n m = logn m=logn ,所以算法复杂度为 O ( l o g n l o g l o g n ) O(logn loglogn) O(lognloglogn)