跳去內容

空間複雜度

出自維基百科,自由嘅百科全書

運算理論上,空間複雜度hung1 gaan1 fuk1 zaap6 dou6英文space complexity)係運算複雜度嘅一種,指行一段演算法要用嘅記憶體空間[1]:Ch. 3

輔助

[編輯]

輔助空間(auxiliary space)亦都會增加一段演算法嘅空間複雜度-輔助空間泛指 input 以外嘅數據霸走嘅記憶體,即係話

段演算法總共霸走咗嘅記憶體量(空間複雜度反映嘅嘢) = input 霸走嘅記憶體量 + 輔助空間

輔助空間包括咗個程式會用到嘅非 input 常數變數

睇埋

[編輯]
  • 記憶洩漏(memory leak):指個程式攞咗啲記憶體嚟用,但用完又冇「放返開」啲記憶體,搞到個程式霸咗若干量佢唔會再用嘅記憶體,最後令到部電腦有嘅系統資源量不必要噉減少咗;具體啲講,程式嘅源碼入面成日會有類似以下噉嘅碼-
    攞 XXX 呢件資源嚟用;
    將攞到嘅資源做 YYY 噉嘅運算;
    • 好多時,用家仲有必要手動噉加行碼(delete()),話畀部電腦知「個程式用完呢嚿資源喇,嚿資源霸咗嘅記憶體可以空出嚟做第啲嘢」-尤其係喺 C 或者 C++ 等稍為低階嘅語言嘅子程序度。如果用家冇噉做,就會引致記憶洩漏,喺複雜啲嘅軟件當中會搞到隻軟件行起上嚟明顯慢咗[2]。到咗廿一世紀初,常用嘅程式語言或者寫程式架生都會或多或少噉有垃圾回收(教電腦自動噉釋放啲「個程式打後唔再提到」嘅記憶體)或者類似嘅功能[3]
  • 運算複雜度
  • 時間複雜度
  • 軟件最佳化
  • 垃圾回收垃圾

[編輯]
  1. Kuo, W., & Zuo, M. J. (2003). Optimal reliability modeling: principles and applications. John Wiley & Sons.
  2. Memory Leak in Python requests. GeeksForGeeks.
  3. Jones, R., & Lins, R. (1996). Garbage collection: algorithms for automatic dynamic memory management. John Wiley & Sons, Inc.