用于可视化递归算法的流程。当你知道递归的时间复杂度的公式后,就可以画出递归树,有利于你计算递归算法的时间复杂度。

像这种公式,第一个2说明是二叉树,一分为2;第二个n/2,说明他的儿子们所占用的数据只有一半,也就是说:

T(n/2)=2T(n/4)+cn/2;

总的时间复杂度,就是树高与每层数据量之和。如果最后cn为常数,那么时间复杂度就是常数*树高;也就是上图的lgn了。


 

事实上,任意一种常数比例系数划分的递归树,其深度都是 Θ(lgn),每层的时间代价都是 O(n),因此时间复杂度都是 O(n*lgn)