計算時間和空間複雜度

2021-04-19 23:30:40 字數 513 閱讀 7198

1> 時間複雜度指的是所有語句的執行頻度之和,它一般由巢狀最深地語句頻度決定.

比如單重迴圈就是o(n),雙重迴圈就是o(n^2),依此類推……

2>空間複雜度指的是執行時臨時占用的儲存空間大小.   

主要是看執行程式時臨時變數的數目和資料規模之間的關係。

注意,關於o(1)的問題!!

o(1)是說資料規模和臨時變數數目無關,並不是說僅僅定義乙個臨時變數。舉例:無論資料規模多大,我都定義100個變數,這就叫做資料規模和臨時變數數目無關。就是說空間複雜度是o(1).

他們都是指示函式執行時處理資料的規模與空間和時間的乙個變化時的比例關係。不是具體的數值!

1>>

int i;

for(i=0;i時間複雜度是o(n),空間複雜度是o(1);

2>>

int i;

int j;

int k;  

for(i=0; ifor(j=0; jfor(k=0; k時間複雜度是o(n^3),空間複雜度還是o(1);

時間複雜度和空間複雜度計算

時間複雜度 首先要說的是,時間複雜度的計算並不是計算程式具體執行的時間,而是演算法執行語句的次數。當我們面前有多個演算法時,我們可以通過計算時間複雜度,判斷出哪乙個演算法在具體執行時花費時間最多和最少。常見的時間複雜度有 常數階o 1 對數階o log2 n 線性階o n 線性對數階o n log2...

時間複雜度和空間複雜度的計算

時間複雜度 1.一般情況下,演算法的基本操作重複執行的次數是模組n的某乙個函式f n 因此,演算法的時間複雜度記做 t n o f n 分析 隨著模組n的增大,演算法執行的時間的增長率和 f n 的增長率成正比,所以 f n 越小,演算法的時間複雜度越低,演算法的效率越高。2.在計算時間複雜度的時候...

時間複雜度和空間複雜度的計算

時間複雜度 執行乙個演算法,執行的次數和問題規模之間的函式關係,用o 表示。o 1 常數項,和問題的規模無關。時間複雜度計算規則 1.只保留最高端項 2.不要係數 空間複雜度 執行乙個演算法,需要額外的輔助空間和問題規模之間的函式關係,用o 表示。簡單來說,時間複雜度指的是執行次數,空間複雜度指的是...