T(n)=2T(n/2)+n的解为T(n)=O(nlogn)的求解

  1. 课本上的数学归纳法就不说了!
  2. 还是用替换法求解:
T(n)=2T(n/2)+n
    =2(2T(n/2*2)+n)+n
    =2(2(2T(n/2*2*2)+n)+n)+n
    =2^3T(n/2^3)+3n
    =...
    =2^kT(n/2^k)+kn    		现在设 n=2^k
    =nT(1)+kn
    =n(T(1)+k)			T(1)是常数,可以忽略
    =kn
    =nlogn
  1. 另外一种方法就是利用递归树来求解,也是非常方便,但是要注意一个定理:有n个节点的二叉树有k=logn层,知道这个就好理解下面这个图了,慢慢推导吧,这个可能是个考点。T(n)=2T(n/2)+n的解为T(n)=O(nlogn)的求解_第1张图片

你可能感兴趣的:(T(n)=2T(n/2)+n的解为T(n)=O(nlogn)的求解)