算法和算法複雜度

目錄

算法特徵

時間複雜度

空間複雜度


算法特徵

  • 有窮性:有限步之後不會出現無限循環
  • 確定性:不存在二義性
  • 可行性:能實現的算法
  • 輸入:能被計算機處理的各種類型數據,如數字、音頻、圖像等
  • 輸出:一至多個程序輸出結果

時間複雜度

用來衡量算法隨着問題規模增大,算法執行時間增長的快慢

主要分析其問題規模函數 T(n)的數量級。 T(n)= O(f(n));

計算方法:取算法時間增長最快的那個函數項,把他的係數改爲1

常用時間複雜度大小關係:從左至右,時間性能依次降低

O(1)< O(log n)< O(n)< O(nlog n)< O(n*n)< O(n*n*n)< O(2^n)

 

空間複雜度

用來衡量算法隨着問題規模增大,算法所需空間增長的快慢

S(n)指算法運行過程中所使用的輔助空間的大小。

輔助空間:除了存儲算法本身的指令、常數、變量和輸入數據外,還需要存儲對數據操作的存儲單元。

算法原地工作是指算法所需的輔助空間是常量,即O(1)。

主要分析其問題規模函數 S(n)的數量級。 S(n)= O(g(n))

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