算法學習(三):算法的空間復雜度


概念定義

  • 輸入空間:存儲輸入數據所需的空間大小
  • 暫存空間:算法運行過程中,存儲所有中間變量和對象等數據所需的空間大小
  • 輸出空間:算法運行返回時,存儲輸出數據所需的空間大小

通常情況下,空間復雜度是指在輸入數據大小為N時,算法運行所使用的【暫存空間】 + 【輸出空間】的總體大小

 

 而根據不同來源,算法使用的內存空間分為三類:

  指令空間:

    編譯后,程序指令所使用的內存空間

  數據空間:

    算法中的各項變量使用的空間,包括:聲明的常量、變量、動態數組、動態對象等使用的內存空間。

  棧幀空間:

    程序調用函數是基於棧實現的,函數在調用期間,占用常量大小的棧幀空間,直至返回后釋放。

符號表示

  通常情況下,空間負責度統計算法在最差情況下使用的空間大小,以體現算法運行所需預留的空間量,使用符號O表示。

  最差情況有兩層含義,分別為【最差輸入數據】、算法運行中的【最差運行點】。

常見種類

  根據從小到大排序,常見的算法空間復雜度有:

    O(1)<O(logN)<O(N)<O(N2)<O(2N)

 

 

參考資料:https://leetcode-cn.com/leetbook/read/illustration-of-algorithm/r8ytog/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM