時間複雜度和空間複雜度

2021-09-02 19:45:58 字數 944 閱讀 8559

時間複雜度

時間複雜度簡單的理解就是執行語句的條數。如果有迴圈和遞迴,則忽略簡單語句,直接算迴圈和遞迴的語句執行次數。

比如:

int x = 1;//時間複雜度為o(1)

for(int i=0; i

具體例子:

1、o(1)

int x = 1;

2、o(n)

for(int i=0; i

3、o(log2(n))

int n = 8, count = 0;;

for(int i=1; i<=n; i *= 2)

4、o(n^2)

int n = 8, count = 0;;

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

}

5、o(nlog2(n))

int n = 8, count = 0;;

for(int i=1; i<=n; i *= 2)

}

所舉例子都比較簡單。

空間複雜度

空間複雜度也很簡單的理解為臨時變數占用的儲存空間。乙個簡單例子:

//交換兩個變數x和y

int x=1, y=2;

int temp = x;

x = y;

y = temp;

乙個臨時變數temp,所以空間複雜度為o(1)。

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

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

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

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

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

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