空間複雜度:
演算法的儲存變數包括:
1、程式本身所佔的空間;
2、輸入資料所佔空間;
3、輔助變數所佔空間;
輸入資料所佔空間只取決於問題本身,和演算法無關,則只需要分析除了輸入和程式之外的輔助變數所佔的額外空間。
空間複雜度是對乙個演算法在執行過程中臨時占用的儲存空間大小的量度,一般也做為問題規模n的函式,以數量級形式給出,記作:
s(n)=o(g(n))
空間複雜度分析1:
int fun(int n)else{
fun(a,n-1)
此屬於遞迴演算法,每次呼叫本身都需要分配新的空間,其空間複雜度為o(n).
注意:
1、空間複雜度相比時間複雜度分析要少,
2、遞迴情況:遞迴使**簡潔,演算法本身所占用的儲存空間較少,缺點:效率低下,執行時需要占用較多的臨時工作單元
若寫成非遞迴情況,**一般本身可能比較長,演算法本身占用的儲存空間較多,但執行將需要較少的儲存單元。
演算法時間複雜度空間複雜度
演算法 是解決某一類問題的通法,即一系列清晰無歧義的計算指令。每個演算法只能解決具有特定特徵的一類問題,但乙個問題可由多個演算法解決。乙個演算法應該有以下五個方面的特性 比較演算法的優劣我們從兩個維度去進行考量 時間 空間 時間複雜度,空間複雜度 找出基本語句 演算法中執行次數最多的那條語句就是基本...
演算法 時間複雜度 空間複雜度
1 if i 1 2 a 1 result 3 4 result n 2 result 1000 1000 3 array.push a array.pop 4 map.set 1,1 map.get 1,1 在計算複雜度的時候,o 1 一般會被忽略。1 for let i 0 i n i 2 wh...
演算法的時間複雜度 空間複雜度
時間複雜度和空間複雜度是度量演算法效率的常用指標 事後統計,不常用 事前統計影響因素 演算法策略 問題規模 程式語言 質量 機器執行指令的速度 撇開軟硬體的影響,演算法執行工作量的大小只依賴於問題的規模 通常用整數n表示 乙個演算法是由控制結構 順序,分支,迴圈三種 和原操作 指固有資料型別的操作 ...