演算法效率的度量

2021-08-16 22:16:54 字數 690 閱讀 7913

常見時間複雜度:

當演算法的時間複雜度為:

即使n的值很小,實際的程式執行時間也是不可接受的!大o的n的3次方是工程開發時時間複雜度的臨界點。

當演算法在最壞情況下仍能滿足需求時,可以推斷演算法的最好情況和平均情況都滿足需求。

空間複雜度

推導時間複雜度的方法同樣適用於空間複雜度。

空間與時間的策略:

— 多數情況下,演算法的時間複雜度更令人關注(因為硬體的發展速度比軟體的發展速度要快得多)

— 如果有必要,可以通過增加額外空間降低時間複雜度(以空間換時間)

— 同理,也可以通過增加演算法的耗時降低空間複雜度

面試題:

當兩個演算法的大o表示法相同時,是否意味著兩個演算法的效率完全相同?

答:只能說明這兩個演算法的效率是處於同一級別的,不能夠說明兩個演算法的效率完全相同。(考的是演算法的時間複雜度和演算法效率的理解)

小結:

— 一般而言,工程中使用的演算法,時間複雜度不超過

— 演算法分析與設計時,重點考慮最壞情況下的時間複雜度

— 資料結構課程中重點關注演算法的時間複雜度

— 大o表示法同樣適用於演算法的空間複雜度

— 空間換時間是工程開發中常用的策略

度量演算法效率

度量乙個演算法的效率,乙個方法是事後統計,即先將演算法實現,然後輸入適當的資料執行,測算其時間和空間開銷。其缺點顯而易見,不僅編寫程式實現演算法將花費較多的時間和精力,而且實驗結果依賴於計算機的軟硬間等環境因素,容易掩蓋演算法本身的優劣。所以通常採用事前分析估算的方法估算演算法所消耗的資源。不談與計...

演算法效率的度量

演算法的時間複雜度是乙個函式,它定量描述了該演算法的執行時間。這是乙個關於代表演算法輸入值的字串的長度的函式。時間複雜度常用大o符號表述,不包括這個函式的低階項和首項係數。使用這種方式時,時間複雜度可被稱為是漸近的,它考察當輸入值大小趨近無窮時的情況。t n o f n 總結幾點求時間複雜度的規則 ...

C 初學記錄(演算法效率與度量)

時間效能 演算法複雜性函式 f n n 2 1000n log n 1000 當n的資料規模逐漸增大時,f n 的增長趨勢 當n增大到一定值以後,計算公式中影響最大的就是n的冪次級最高的項,並且其他的常數項和低冪次項都可以忽略,我們更關注的是它是乙個什麼量級的演算法,是線性的還是n方的,還是指數級的...