演算法的時間複雜度與空間複雜度

2022-03-14 08:48:19 字數 849 閱讀 6852

常見的時間複雜度量級有:

上面從上至下依次的時間複雜度越來越大,執行的效率越來越低。

1.常數階o(1)

int i = 1

;int j = 2

;++i;

j++;

int m = i + j;

消耗的時候並不隨著某個變數的增長而增長

2.線性階o(n)

for(i=1; i<=n; ++i)

消耗的時間是隨著n的變化而變化的

3.對數階o(logn)

int i = 1

;while(i

2 的 x 次方等於 n,那麼 x = log2^n

4.線性對數階o(nlogn)

for(m=1; m)

}

5.平方階o(n²)

for(x=1; i<=n; x++)

}

空間複雜度比較常用的有:o(1)、o(n)、o(n²)

1.空間複雜度 o(1) 

int i = 1

;int j = 2

;++i;

j++;

int m = i + j;

**中的 i、j、m 所分配的空間都不隨著處理資料量變化

2.空間複雜度 o(n)

int m = new

int[n]

for(i=1; i<=n; ++i)

第一行new了乙個陣列出來,這個資料占用的大小為n,這段**的2-6行,雖然有迴圈,但沒有再分配新的空間

演算法的複雜度 時間複雜度與空間複雜度

通常,對於乙個給定的演算法,我們要做 兩項分析。第一是從數學上證明演算法的正確性,這一步主要用到形式化證明的方法及相關推理模式,如迴圈不變式 數學歸納法等。而在證明演算法是正確的基礎上,第二步就是分析演算法的時間複雜度。演算法的時間複雜度反映了程式執行時間隨輸入規模增長而增長的量級,在很大程度上能很...

演算法時間複雜度空間複雜度

演算法 是解決某一類問題的通法,即一系列清晰無歧義的計算指令。每個演算法只能解決具有特定特徵的一類問題,但乙個問題可由多個演算法解決。乙個演算法應該有以下五個方面的特性 比較演算法的優劣我們從兩個維度去進行考量 時間 空間 時間複雜度,空間複雜度 找出基本語句 演算法中執行次數最多的那條語句就是基本...

演算法 時間複雜度 空間複雜度

1 if i 1 2 a 1 result 3 4 result n 2 result 1000 1000 3 array.push a array.pop 4 map.set 1,1 map.get 1,1 在計算複雜度的時候,o 1 一般會被忽略。1 for let i 0 i n i 2 wh...