演算法分析之複雜度

2021-07-13 06:41:18 字數 563 閱讀 5879

時間複雜度:是度量演算法執行的時間長短或者說是程式執行的次數。

詳細說明:

乙個演算法,處理n條資料需要的時間可以用表示式:a*n+b來表示的話,稱它的時間複雜度為o(n),

也就是說,100條資料需要1秒的話,1000條資料需要10s。

如果是用表示式:a*n*n+b*n+c的話,複雜度為o(n的平方),這樣100條1秒,1000條就要100s了。

0(0)表示式為a*(n的0次方)+b,也就是個常數。這樣無論100還是1000條都只需1秒。

for(i=0;i<10;i++;)

}

這樣時間複雜度為o(n的平方)

如果j裡面再有乙個k的迴圈則為o(n的三次方)

空間複雜度:描述的是規模與儲存空間的關係。

乙個演算法所需儲存空間包含三個方面、

1.演算法本身的儲存空間

2.輸入資料的儲存空間

3.演算法在執行過程中臨時占用的儲存空間。

如果額外空間相對於輸入資料量來說是個常數,則稱此演算法是原地工作。

演算法錄 之 複雜度分析。

乙個演算法的複雜度可以說也就是乙個演算法的效率,一般來說分為時間複雜度和空間複雜度。注意接下來說的均是比較yy的,適用與acm等不需嚴格分析只需要大致範圍的地方,至於嚴格的演算法複雜度分析的那些數學證明,主定理什麼的在 演算法導論 這本書上有十分詳細的講解,網上應該也會有人寫過,這裡就不多說了 其實...

資料結構之複雜度分析

目錄 1 為什麼需要複雜度分析?2 大o複雜度表示法 3 時間複雜度 3.1 只關注迴圈執行次數最多的一段 3.2 總的複雜度等於量級最大的那段 的複雜度 加法法則 3.3 巢狀 的複雜度等於巢狀內外 複雜度的乘積 乘法法則 3.4 時間複雜度 4 空間複雜度 5 時間複雜度擴充套件 網上一直有乙個...

演算法複雜度分析

分析非遞迴演算法效率的通用方案 1.決定用哪個 哪些 引數作為輸入規模的度量 2.找出演算法的基本操作 作為一規律,它總是位於演算法的最內層迴圈中 3.檢查基本操作的執行次數是否只依賴輸入規模。如果它還依賴一些其他的特性,則最差效率 平均效率以及最優效率 如果必要 需要分別研究。4.建立乙個演算法基...