概念理解: 時間複雜度 空間複雜度

一. 時間複雜度(time complexity)

在進行算法分析時,語句總執行次數T(n) 是關於問題規模 n 的函數。進而分析執行次數T(n) 隨規模 n 的變化情況並確定T(n) 的數量級。

算法的時間複雜度就是算法的時間度量,記作T(n) = O( f(n) ) 。它表示隨問題規模 n 的增大,算法的執行時間的增長率和 f(n) 的增長率相同,稱作算法的漸進時間複雜度,簡稱爲時間複雜度。其中,f(n) 是問題規模 n 的某個函數。


常見的時間複雜度量級有:

  • 常數階O(1)
  • 對數階O(logN)
  • 線性階O(n)
  • 線性對數階O(nlogN)
  • 平方階O(n²)
  • 立方階O(n³)
  • K次方階O(n^k)
  • 指數階(2^n)

上面從上至下依次的時間複雜度越來越大,執行的效率越來越低。

二. 空間複雜度(space complexity)

作爲算法所需存儲空間的量度,記做S(n) = O( f(n) ) 。其中,n爲問題的規模;f(n) 爲語句關於 n 的所佔存儲空間的函數。

空間複雜度比較常用的有:O(1)、O(n)、O(n²)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章