做用:求解遞歸算法的時間複雜度。html
把遞歸的函數調用過程,逐層分解畫成圖,其實就是一棵樹。算法
以下是根據斐波那契數列的遞推公式畫的圖:數組
如何用遞歸樹求解時間複雜度呢?函數
總時間=全部層數消耗時間的和;cdn
若是每層消耗時間相同,那麼O(n*h)。htm
若是每層消耗時間不一樣,那麼O(h1+h2+...)blog
練習:排序
每一層的操做就是:求分區點位置,分區。求分區點位置時間n,總的n。O(nh)。遞歸
那麼如今求樹高h也就是有多少層。get
O(nlogn)
F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
最短路徑n、n-二、n-4....1 =n/2 最長路徑n、n-一、n-2....1 =n
每層時間:每組加和時間的總和,加和時間1,組數=2^(h-1)。每層總時間是2^(h-1)。
若是路徑長度n: