空間複雜度(SPACE COMPLEXITY)
【定義】是指從主程式呼叫該副程式開始到完成的過程,所佔用的「記憶體空間」。
例如:參數、變數宣告,回傳值及傳回位址時,都會佔用記憶體空間。
說明:保存A函數當時執行時之狀態
包括:(1)參數值(2)區域變數值(3)返回位址(Return Address)。
時間複雜度與空間複雜度之分析
基本上,時間複雜度的分析比空間複雜度的分析來得重要,因為當資料庫龐大時,時間複雜度會有較大的差異,但是空間複雜度則差異較小。
再加上目前的記憶體相對便宜,因此,目前在資料結構所探討演算法效率之評估,都較著重於時間複雜度方面的評估。
時間複雜度(TIME COMPLEXITY)
【定義】
是指計算執行程式所花費的時間。一般而言,我們可以將一個程式P的時間複雜度表示為T(P)的形式。而T(P)記錄了程式執行次數n的成長速率。
演算法的「執行次數」
【定義】一般評估執行時間是依程式碼所被執行的總次數來計算。也就是所謂的「頻率次數」,當頻率次數越高時,代表所需的執行時間越長。