時間複雜度和空間複雜度

2022-05-28 03:15:12 字數 1198 閱讀 5767

常見的時間複雜度有:常數階o(1),對數階o(log2n),線性階o(n),線性對數階o(nlog2n),平方階o(n2),立方階o(n3), k次方階o(nk),指數階o(2n),隨著問題規模不斷擴大,上述時間複雜度不斷地增大,演算法執行效率越來越低。

<?php

//從上到下所有的**執行一次

$a = 123;

$b = 456;

$c = $a + $b;

echo $c;

<?php

$num = 1;

while($num < n)

<?php

for($i = 0; $i < 9; $i++)

<?php

for($i = 0; $i < 9; $i++)

}

<?php

for($i = 0; $i < 9; $i++)

} }

function binsearch($arr, $key, $start, $end)

else if($arr[$mid] > $key)else

}

注意:1、遞迴情況下的空間複雜度:如果每次遞迴的輔助空間為常數,則空間複雜度為o(n)。

2、遞迴的二分查詢的空間複雜度:遞迴深度是log2^n,每次遞迴的輔助空間為常數,所以空間複雜度為o(log2n)。

function binsearch($arr, $key)else if($arr[$mid] > $key)else 

} }

在這個過程中,輔助空間為常數級別,所以空間複雜度為o(1)(有乙個輔助變數$mid)

時間複雜度:

1、用常數1來取代所有時間的所有加法常數,比如這個程式被執行了三次應該是o(3),3是常數直接用1取代為o(1);

2、在修改後的執行次數中,只保留最高端項,比如o(n^2+3n+3),最後的時間複雜度是o(n^2),2是常數直接用1替代;

3、如果最高端項不存在1的常數,則去除最高端項的常數,比如o(2n^2+1),最後的時間複雜度是o(n^2)。

空間複雜度:

1、包括程式**所占用的空間、輸入資料所占用的空間、輔助變數所占用的空間。

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

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

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

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

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

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