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    现在设T(1)=0, n=2^k
       =nT(1)+kn
       =kn
       =nlogn
  1. 另外一种方法就是利用递归树来求解,也是非常方便,但是要注意一个定理:有n个节点的二叉树有k=logn层,知道这个就好理解下面这个图了,慢慢推导吧,这个可能是个考点。
    T(n)=2T(n/2)+n的解为T(n)=O(nlogn)的求解_第1张图片

你可能感兴趣的:(作业题)