數據結構與算法一(算法與計算複雜度)

算法:一個計算過程,解決問題的方法
1. 時間複雜度
時間複雜度:用來評估算法運行效率的一個式子(單位)
一般來說時間複雜度高的算法比複雜度低的算法慢。
常見的時間複雜度(按效率排序)
O(1)<O(logn)<O(n)<O(nlogn)<O(n2) <O(n2logn)<O(n^3)
複雜問題的時間複雜度
O(n!)、O(2n)、O(nn)…
快速判斷算法複雜度(適用於絕大多數簡單情況)

  • 確定問題規模n
  • 循環減半過程——>logn
  • k層關於n的循環——>n^k
    複雜情況:根據算法執行過程判斷

2.空間複雜度
空間複雜度:用來評估算法內存佔用大小的式子
空間複雜度的表示方式與時間複雜度完全一樣。

  • 算法使用了幾個變量:O(1)
  • 算法使用了長度爲n的一維列表:O(n)
  • 算法使用了m行n列的二維列表:O(mn)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章