天天看點

快排時間複雜度_計算複雜度理論——空間複雜度

馬東什麼:計算複雜度理論——時間複雜度​zhuanlan.zhihu.com

快排時間複雜度_計算複雜度理論——空間複雜度

之前介紹了時間複雜度,終于騰出時間刷空間複雜度了;

和時間複雜度一樣,常見的空間複雜度的度量也包括了:

https://www.bigocheatsheet.com/​www.bigocheatsheet.com

找到了一個很好的總結

快排時間複雜度_計算複雜度理論——空間複雜度
快排時間複雜度_計算複雜度理論——空間複雜度

整體概念和時間複雜度類似,一般來說,在leetcode的題目中,都是通過額外空間的使用的大小來進行衡量的;

空間複雜度O(1)

j=0
for i in range(n):
     j+=1
           

無論n的大小如何變化都沒有開辟新的記憶體空間來存放;

空間複雜度o(n)

j=[]
for i in range(n):
     j.append(i)
           

可以看到,記憶體空間随着n的增大而線性增長

(注意,這裡僅僅是為了說明而用python寫的例子,實際上python的list的記憶體空間增長是指數的。。。。具體可見python list的記憶體占用變化的相關文章分析這裡暫時不寫那麼多了)

空間複雜度o(n^2)

j=[]
for i in range(n):
     for k in range(n):
         j.append(k)
           

空間複雜度O(n^k) 類似的道理了。。

空間複雜度 O(logn)

快速排序---(面試碰到過好幾次)_nrsc-CSDN部落格_快速排序​blog.csdn.net

快排時間複雜度_計算複雜度理論——空間複雜度

快排涉及到需要定義中間變量,這個中間變量的空間複雜度為O(logn)