時間複雜度與空間複雜度

2021-08-20 06:11:41 字數 837 閱讀 1146

一般演算法o(n)計算方法:

1. 用常數1取代執行時間中的所有加法常數

2. 在修改後的執行次數函式中,只保留最高端項。

3. 如果最高端項係數存在且不是1,則去除與這個項相乘的常數。

int x = 1;//時間複雜度為o(1)
for(int i=0; iout.println(i);  

}//時間複雜度為o(n)

int n = 8, count = 0;;  

for(int i=1; i<=n; i *= 2) //時間複雜度為o(logn)

int n = 8, count = 0;;  

for(int i=1; i<=n; i++)

} //時間複雜度為o(n^2)

int n = 8, count = 0;;  

for(int i=1; i<=n; i *= 2)

} //時間複雜度為o(nlogn)

時間複雜度書寫規則:

o(1)曲線越陡,時間複雜度越大,越不好
int sum(int n)

return

count;

}//空間複雜度o(1)

void fun(int n)

//空間複雜度o(n)

空間複雜度書寫規則:

時間複雜度與空間複雜度

空間複雜度 space complexity 是對乙個演算法在執行過程中臨時占用儲存空間大小的量度,記做s n o f n 比如直接 插入排序 的時間複雜度 是o n 2 空間複雜度是o 1 而一般的 遞迴演算法就要有o n 的空間複雜度了,因為每次遞迴都要儲存返回資訊。乙個演算法的優劣主要從演算法...

時間複雜度與空間複雜度

本文是對時間複雜度以及空間複雜度的乙個理解 時間複雜度 由於環境的不同,同樣的 執行所需要的時間是不同的,所以是不能拿來比較的 而函式中執行的次數確實一樣的 所以時間複雜度就是 程式每個迴圈中的語句總共會執行的次數 時間複雜度的表示方法 大o漸進表示法 o f n 這裡的f n 是什麼呢?void ...

時間複雜度與空間複雜度

本文部分取自搜狗百科 在求演算法效率時,通常有事前分析和事後分析兩種方法,事後分析因為必須實際檢驗過後才能得出答案,且可能由於硬體方面等外部原因影響結果而不被推廣,事前分析的主要就是在考量乙個演算法的基本執行次數,這就是時間複雜度。時間複雜度 一般情況下,演算法中基本操作重複執行的次數是問題規模n的...