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

2021-10-03 03:18:28 字數 833 閱讀 5258

1.時間複雜度

(1)語句頻度

是指該語句在乙個演算法中重複執行的次數。乙個演算法的時間耗費就是該演算法中所有語句頻度之和,用f(n)表示。

(2)時間複雜度

對於演算法分析,關心的是演算法中語句總的執行次數f(n)是問題規模n的函式, 進而分析f(n)隨n的變化情況並確定t(n)的數量級。用「o」(起初是希臘字母,後多為英語字母)表示數量級,演算法的時間複雜度t(n)=o(f(n))是該演算法的時間度量。

2.空間複雜度

演算法占用空間是指演算法實際占用的輔助空間的總和。

空間複雜度為該演算法耗費的儲存空間的數量級,它是問題規模n的函式。記作:s(n)=o(f(n))

3.常見的時間複雜度

o(1)常數型,o(n)線性型,o(n2)平方型,o(n3)立方型,

o(2n)指數型,o(log2n)對數型,o(nlog2n)二維型

4.演算法空間分析

每一句的語句頻度

for(int i=0;i這裡f(n)=n,所以它的時間複雜度為o(n)。

int i; 1

for(i=0;if(n)=n2+n+1,它的時間複雜度為o(n2)。

int i=1;

while(i每次執行i都乘以2,設執行次數為f(n),那麼

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

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

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

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

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

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