演算法時空複雜度分析

2021-10-08 06:18:21 字數 1513 閱讀 5514

目錄

1.時間複雜度

2.空間複雜度

3.常見的演算法複雜度

4.相關典型例題

5.總結

在acm範圍裡,我們只需了解時間複雜度可以大致地通過乙個演算法運算的次數來描述程式執行的效率,常常用大寫字母o來表示。在表示時間複雜度的時候,只保留數量級最大的一項,並忽略係數。

對於給定的常數n ,若某乙個演算法計算的次數是3n^3 + n^2 + 10^5則我們可以認為它的時間複雜度為0(n^3)。只考慮最高次。

顧名思義就是用來衡量記憶體的占有量的。除了計算複雜度,我們常常也需要直接算出來執行程式需要占用多少記憶體。

1g=1024mb           1mb = 1024kb          1kb = 1024b         1b (byte,位元組)=8b (bit, 位元).

char/ bool.  1b          short. 2b               int/float/long. 4b          long long/double. 8b

ps:在不同的系統佔的位元組不同。如果忘記資料型別占用的記憶體,可用sizeof函式測出占用多少位元組。

1)常數階:o(1)                                     2)對數階:o(logn)                       3)線性階:o(n)

4)線性對數階:o(n*logn)                    5)平方階:o(n^2)                         6) 立方階:o(n^3) 

(1) 求階乘之和。

以下只列出求階乘之和的**。

我們記錄下每個地毯的資訊,對於(x,y),我們在n個地毯中倒序查詢,如果滿足在某個地毯內,那,我們就找到它了。時間複雜度:o(n),空間複雜度:o(n) 。

#includeusing namespace std;

struct nodenode[100005];

int main()

if(state==0)cout<

return 0;

}

時 空間複雜度

演算法中的基本操作的執行次數,稱為演算法的時間複雜度 我們計算時間複雜度,並不一定要計算所有執行次數,而是擇其大概次數就行了。即漸進計數。漸進計數就是說 1 已知常數次記為o 1 2 忽略 係數 即2n次 記為o n 3 大資料下忽略小資料 即 n 2 2n 1 記為o n 2 時間複雜度 也有最好...

演算法的特性及時空複雜度

有限性 完成步驟有限,不能形成無窮迴圈 確定性 演算法的每一步驟都必須有確定含義,無二異性得以實現 輸入 有多個或0個輸入 至少有乙個或者多個輸出 可行性 原則上精確進行,操作可以通過已實現基本運算執行有限次而完成 1.不含有語法錯誤 2.對於幾組資料可以得出滿意的結果 3.程式對於精心挑選的典型。...

時空複雜度的理解

1.演算法效率的度量 演算法執行的時間需通過依據該演算法編制程式在計算機上執行時所消耗的時間來度量。而度量乙個程式執行時間通常有兩種方法。1 事後統計法 因為計算機內部都有計時功能,有的甚至精確到毫秒級,不同演算法的程式可通過一組或若干組相同的統計資料以辨別優劣。但這種方法有兩個缺陷 一是必須先執行...