時間複雜度和空間複雜度

2021-10-07 07:33:25 字數 736 閱讀 1780

時間複雜度

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

演算法的時間複雜度,用來度量演算法的執行時間,記作: t(n) = o(f(n))。它表示隨著 輸入大小n 的增大,演算法執行需要的時間的增長速度可以用 f(n) 來描述。

時間複雜度計算

int func(int a)

//一共2次

int func2(int b)

return 0;//執行1次

} //一共(n + 1 + n + 1) = 2n + 2次

函式執行次數用t(n)表示,有了t(n)之後,在計算o(n)

t(n) = 5,時間複雜度為o(1)

t(n) = n + 5,時間複雜度為o(n)

t(n) = 3n^5, 時間複雜度為o(n^5)

t(n) = 2n^3 + n^2 + 5,時間複雜度為o(n^3)

void func()

for(int k = 0; k < n; ++k)

}//時間複雜度為o(n^2)

空間複雜度

是指乙個程式執行所需記憶體空間的大小。

程式執行時所需儲存空間包括兩部分:

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

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

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

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

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

演算法的時間複雜度是指執行演算法所需要的計算工作量。n稱為問題的規模,當n不斷變化時,時間頻度t n 也會不斷變化。但有時我們想知道它變化時呈現什麼規律。為此,我們引入時間複雜度概念。一般情況下,演算法中基本操作重複執行的次數是問題規模n的某個函式,用t n 表示,若有某個輔助函式f n 存在乙個正...