時間復雜度計算方法


1.形如 T(n) = a * T(n/b) + f(n) 的時間復雜度計算方法

有一種方法叫做主方法(Master method)是用來專門計算這種形式的時間復雜度的,方法具體如下:

 

 下邊舉例進行說明:

例1:

T(n) = 25*T(n/5) + n^2

因為:a=25,b=5,d=2,f(n) = n^2

所以此例符合Master method 中的第二種情況,所以 直接就可以得到:T(n) = n^2 * logn

 2.形如 T(n) = a * T(n-1) + f(n)  的時間復雜度計算方法

這種形式的復雜度計算,只能用遞推的方式

例1:

T(n)=T(n-1)+n                             (1)

T(n-1)=T(n-2)+n-1                       (2)

T(n-2)=T(n-3)+n-2                       (3)

T(n-3)=T(n-4)+n-3                       (4)

……

T(3)=T(2)+3                                 (n-2)

T(2)=T(1)+2                                 (n-1)

T(1)=T(0)+1                                 (n)

 

將(n)式帶回(n-1) 式,將(n-1)式帶回(n-2) 式,將式子依次帶回,最后帶回(4) 式,(3) 式,(2) 式,(1) 式。帶入式子結果如下:

T(n)=T(0)+1+2+3+……+n-3+n-2+n-1+n

計算結果如下:

T(n)=1+1+2+3+……+n-3+n-2+n-1+n

T(n)=1+(1+n)*n/2

故算法的時間復雜度為

O(n2)

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM