演算法複雜度整理

2021-09-25 11:28:29 字數 941 閱讀 4268

演算法複雜度整理

1定義:演算法複雜度是指演算法在編寫成可執行程式後,執行時所需要的資源,資源包括時間資源和記憶體資源**。應用於數學和計算機導論。

2簡介:同一問題可用不同演算法解決,而乙個演算法的質量優劣將影響到演算法乃至程式的效率。演算法分析的目的在於選擇合適演算法和改進演算法。乙個演算法的評價主要從***時間複雜度***和***空間複雜度***來考慮。

3時間複雜度

(1)時間頻度:乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就多。乙個演算法中的語句執行次數稱為語句頻度或時間頻度。記為t(n)

。(2)時間複雜度:t(n)=o(f(n)),稱o(f(n))為演算法的漸進時間複雜度,簡稱時間複雜度。

、例如:若演算法中語句執行次數為乙個常數,則時間複雜度為o(1),

另外,在時間頻度不相同時,時間複雜度有可能相同,如t(n)=n2+3n+4與t(n)=4n2+2n+1它們的頻度不同,但時間複雜度相同,都為o(n^2)。

**類別:*1常數階o(1)

2對數階o(log2n)(以2為底n的對數,下同)

3線性階o(n)

4線性對數階o(nlog2n)

5平方階o(n^2)

6立方階o(n^3)

7k次方階o(n^k),

8指數階o(2^n)

**說明:隨著問題規模n的不斷增大,上述時間複雜度不斷增大,演算法的執行效率越低。

*4空間複雜度

與時間複雜度類似,空間複雜度是指演算法在計算機內執行時所需儲存空間的度量。記作:

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

演算法執行期間所需要的儲存空間包括3個部分:

演算法程式所佔的空間;

輸入的初始資料所佔的儲存空間;

演算法執行過程中所需要的額外空間。

複雜度分析 整理

一 時間複雜度 複雜度量級 粗略地可以分為多項式量級和非多項式量級。其中,非多項式量級只有兩個 我們把時間複雜度為非多項式量級的演算法問題叫作 np non deterministic polynomial,非確定多項式 問題。1.o 1 1 int i 8 2 int j 6 3 int sum ...

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

1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數...

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

演算法複雜度 時間複雜度和空間複雜度 關鍵字 演算法複雜度 時間複雜度 空間複雜度 1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時 間多,哪個演算法花費的時間少就可以...