1. 程式人生 > >Chapter3 復雜度分析(上):如何分析,統計算法的執行效率和資源消耗

Chapter3 復雜度分析(上):如何分析,統計算法的執行效率和資源消耗

執行時間 需要 結構 復雜度 執行 線性 影響 常數 分析

數據結構解決的問題:“快” + “省”,即為時間,空間復雜度分析

1:為什麽需要復雜度分析?

因為通過統計手段分析的結果受到兩個因素的影響,一:測試結果非常依賴測試環境,二:測試結果受數據規模的影響很大

2:大O復雜度表示法

所有代碼的執行時間T(n)與每行代碼的執行次數n成正比。

T(n) = O(f(n))

3:時間復雜度分析: 漸進時間復雜度

1:只關註循環執行次數最多的一段代碼

2:加法法則:總復雜度等於量級最大的那段代碼的復雜度

3:乘法法則:嵌套代碼的復雜度等於嵌套內外代碼復雜度的乘積

4:幾種常見時間復雜度量級:

多項式量級:

u 常數階O(1)

u 對數階O(logn)

u 線性階

O(n)

u 線性對數階O(nlogn)

u 平方階O(n*n),立方階O(n*n*n)… k方階O(n*……*n)

非多項式量級:

u 指數階O(2*……*2)

u 階乘階O(n!)

5:空間復雜度分析: 漸進空間復雜度

常見的空間復雜度:O(1) O(n) O(n*n)

Chapter3 復雜度分析(上):如何分析,統計算法的執行效率和資源消耗