數據結構從0開始2---時間複雜度&空間複雜度

這種複雜度的計算主要是來度量算法的效率。

主要度量兩種複雜度:

  • 時間複雜度,需要計算多少次
  • 空間複雜度,需要佔用多少空間

時間複雜度

時間複雜度主要考慮的是計算的次數,而不是實際時間,因爲計算機性能不一樣需要用的時間也是不一樣的。

時間複雜度,用來事前預估算法時間開銷和問題規模n的關係。這裏的n就是指平時我們數據的量或者是輸入的參數等。例如循環n次。

時間複雜度其實包括三種:

  1. 最好時間複雜度,就是考慮最好的情況
  2. 平均時間複雜度,考慮所有輸入數據都等概率出現的情況
  3. 最壞時間複雜度,

計算的時候忽略低階的次數

對於計算機來說二次方在三次方前面不足爲道。並且前面的係數也是不足爲道的。

複雜度的大小比較

順序:常對冪指階

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述

空間複雜度

空間複雜度表示程序運行時對內存的需求程度。

兩個因素會影響內存佔用程度:

  1. 變量和內存增加有關
  2. 函數調用也會帶來內存增加

變量帶來內存增加

如果生成新的變量則會帶來內存怎講,如果變量數量不增加則空間複雜度是O(1).

對於一維數組來說,他是O(n),因爲數組越長內存佔用越多。
對於二維數組來說是n平方。

因爲是相對於輸入變量來說的。比如:

在這裏插入圖片描述

函數調用帶來內存開銷

因爲調用函數的時候會存儲局部變量,所以會佔用內存。

在這裏插入圖片描述

在這裏插入圖片描述

引用

  • 王道考研-數據結構
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章