演算法效率的度量

2022-01-20 11:29:57 字數 653 閱讀 3820

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

t(n)=o(f(n))

總結幾點求時間複雜度的規則:

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

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

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

乙個程式的空間複雜度是指執行完乙個程式所需記憶體的大小。利用程式的空間複雜度,可以對程式的執行所需要的記憶體多少有個預先估計。乙個程式執行時除了需要儲存空間和儲存本身所使用的指令、常數、變數和輸入資料外,還需要一些對資料進行操作的工作單元和儲存一些為現實計算所需資訊的輔助空間。程式執行時所需儲存空間包括以下兩部分。

(1)固定部分。這部分空間的大小與輸入/輸出的資料的個數多少、數值無關。主要包括指令空間(即**空間)、資料空間(常量、簡單變數)等所佔的空間。這部分屬於靜態空間。

(2)可變空間,這部分空間的主要包括動態分配的空間,以及遞迴棧所需的空間等。這部分的空間大小與演算法有關。

乙個演算法所需的儲存空間用f(n)表示。

s(n)=o(f(n))

度量演算法效率

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

演算法效率的度量

常見時間複雜度 當演算法的時間複雜度為 即使n的值很小,實際的程式執行時間也是不可接受的!大o的n的3次方是工程開發時時間複雜度的臨界點。當演算法在最壞情況下仍能滿足需求時,可以推斷演算法的最好情況和平均情況都滿足需求。空間複雜度 推導時間複雜度的方法同樣適用於空間複雜度。空間與時間的策略 多數情況...

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

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