算法復雜度


一、什么是復雜度

1.算法的概念

算法是特定問題求解步驟的一種描述。

2.復雜度

復雜度描述算法執行時間與數據規模的增長關系。用時間復雜度和空間復雜度來度量。

二、時間復雜度

1.什么是時間復雜度

T(n)=O(fn) 執行時間與執行的總次數成正比

T(n):執行時間

fn:執行的總次數

2.分析的方法

加法法則

總復雜度等於執行循環次數最多的那段復雜度。

T(n)=T1(n)+T2(n)=O(fn)+O(gn)=O(max(fn),g(n))

int sum=0
for(int i=0;i<n;i++){
sum+=i;
}
for(int j=0;j<100;j++){
sum+=j;
}
//時間復雜度O(n)

乘法法則:對於嵌套函數,總復雜為內外循環的乘積。

T(n)=T1(n)*T2(n)=O(fn)*O(gn)=O((fn)*g(n))

for(int j=0;j<=n;j++){
for(int i=0;i<=n;i++){
sum+=i;
}
}
// 時間復雜度O(n^2)
count=0;
for(k=1;k<=n;k*2){
for(j=1;j<=n;j++){
cpunt j++;
}
}
//內循環的條件與外循環的條件的變量無關,各自獨立
//內循環復雜度為O(n)
//外循環復雜度:設執行了t次,循環條件k<=n,增量定義為k*2,當循環次數滿足2ⁿ<=n,即t<=㏒₂ⁿ
//總復雜度:O(n*㏒₂ⁿ)2014年考研真題

三、空間復雜度

表示存儲時間和數據規模之間的增長關系。

S(n)=O(g(n))

S(n):算法所耗費的存儲空間

算法原地工作是指算法所需輔助空間為常量,O(1)


免責聲明!

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



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