時間複雜度和空間複雜度

2021-10-06 14:12:31 字數 1855 閱讀 5601

時間複雜度和空間複雜度, 使用 大o的漸進表示法表示(只保留最高端項).

1 時間複雜度: 時間複雜度可以度量 演算法執行的時間長短.

(1) 常數階o(1)

int a =1;

int b =2;

int c =

3;

(2) 線性階o(n)

for

(i =

1; i <= n; i++

)

(3) 對數階o(logn)

int i =1;

while

(i < n)

(4) 線性對數階o(nlogn)

for

(m =

1; m < n; m++

)}

(5) 平方階o(n²)

for

(x =

1; i <= n; x++

)}

2 空間複雜度: 空間複雜度可以度量 演算法執行所需儲存空間的大小.(1) 空間複雜度 o(1)如果演算法執行所需要的臨時空間不隨著某個變數n的大小而變化,即此演算法空間複雜度為乙個常量.

int i =1;

int j =2;

++i;

j++;

int m = i + j;

(2) 空間複雜度 o(n)第一行new了乙個陣列出來, 這個資料占用的大小為n, 後面雖然有迴圈,但沒有再分配新的空間,因此這段**的空間複雜度主要看第一行即可,即為o(n).

int

m =newint

[n]for

(i =

1; i <= n;

++i)

3 常見的幾種:(1) 氣泡排序時間複雜度o(n^2) 空間複雜度o(1)(2) 二分查詢時間複雜度o(logn) 空間複雜度o(1)(3) 階乘時間複雜度o(n) 空間複雜度o(n)

(4) 斐波那契數列時間複雜度o(2^n) 空間複雜度o(n).

4. 各種資料結構.

(1) 紅黑樹 插入操作的平均時間複雜度為o(logn),最壞時間複雜度為o(logn)

(2) b+樹 插入操作的平均時間複雜度為o(logn),最壞時間複雜度為o(logn)

(3) hash表 插入操作的平均時間複雜度為o(1),最壞時間複雜度為o(n)

(4) 排序鍊錶 插入操作的平均時間複雜度為o(n),最壞時間複雜度為o(n)

(5) 排序二叉樹 插入操作的平均時間複雜度為o(logn),最壞時間複雜度為o(logn)

5.七大排序的比較.

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

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

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

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

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

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