時間空間複雜度的解釋

 

何爲時間空間複雜度?算法

 

1》空間複雜度ON):函數

一個算法在運行過程當中臨時佔用存儲空間大小的量度。一個算法的空間複雜度只考慮在運行過程當中爲局部變量分配的存儲空間的大小,它包括爲參數表中形參變量分配的存儲空間和爲在函數體中定義的局部變量分配的存儲空間兩個部分。spa

舉例:遞歸

1)如一個算法的空間複雜度爲一個常量,即不隨被處理數據量n的大小而改變時,可表示爲O(N)效率

2)當一個算法的空間複雜度與以2爲底的n的對數成正比時,可表示爲O(log2n)變量

3)當一個算法的空間複雜度與n成線性比例關係時,可表示爲O(n)im

4)遞歸函數的時間複雜度是O(N),因每次遞歸都需保存函數內部局部變量的存儲空間。數據

 

2》時間複雜度時間

它定量描述了該算法的運行時間。算法的基本操做重複執行的次數是模塊n的某一個函數f(n),所以,算法的時間複雜度記作:T(n)=O(f(n))。隨着模塊n的增大,算法執行的時間的增加率和 f(n) 的增加率成正比,因此 f(n) 越小,算法的時間複雜度越低,算法的效率越高。參數

 

常見的時間複雜度有:

常數階O(1),對數階O(log2n),線性階O(n),

線性對數階O(nlog2n),平方階O(n^2),立方階O(n^3),...

k次方階O(n^k),指數階O(2^n)。隨着問題規模n的不斷增大,上述時間複雜度不斷增大,算法的執行效率越低。

相關文章
相關標籤/搜索