空間複雜度計算方法

2021-10-06 12:30:02 字數 370 閱讀 8443

演算法題中經常有空間複雜度的限制,特此記錄

簡單來說,假設原始資料大小為n,乙個演算法需要m大小的記憶體才能執行,那麼我們就有乙個函式f(n)=m。這個函式去掉常數項和尾數項就是空間複雜度。

比如說,如果用氣泡排序對資料排序,如果直接在原始資料上排,那麼根本不需要額外的儲存空間,而最多隻需要定義幾個變數,那麼複雜度就是1

如果排序產生乙個新的陣列,不修改原來的陣列,那麼對於排序n個資料,就需要n個新的儲存空間,那麼複雜度就是n。

再比如,對於兩個陣列,求它們的笛卡兒積(比如a=1,2,3 b=a,b,結果是1a 1b 2a 2b 3a 3b),那麼它的複雜度就是n^2

時間複雜度和空間複雜度的計算方法

什麼是演算法 演算法的定義是這樣的 解題方 而完善的描述,是一系列解決問題的清晰指令。巴拉巴拉的,雖然是一小句但還是不想看 題外話 有時候吧專業名詞記下來面試的時候還是挺有用的 其實就是解決乙個問題的完整性描述。只不過這個描述就可能是用不同的方式或者說是 語言 了。演算法的效率 既然演算法是解決問題...

時間複雜度和空間複雜度的計算方法

演算法的定義是這樣的 解題方 而完善的描述,是一系列解決問題的清晰指令。巴拉巴拉的,雖然是一小句但還是不想看 題外話 有時候吧專業名詞記下來面試的時候還是挺有用的 其實就是解決乙個問題的完整性描述。只不過這個描述就可能是用不同的方式或者說是 語言 了。演算法的效率 既然演算法是解決問題的描述,那麼就...

時間複雜度計算方法

o 1 constant complexity constant 常數複雜度 o log n 對數複雜度 o n 線性時間複雜度 o n 2 平方 o n 3 立方 o 2 n 指數 o n 階乘 隨著現在儲存空間的便宜,很多情況下,我們是願意用空間複雜度來換取時間複雜度的,因為記憶體,磁碟等這些和...