天天看點

【算法與資料結構】關于代碼運作時間複雜度的計算方法1.背景知識2.具體案例

       大O标記就不用我說了吧。O(n)這種時間複雜度的意義自己google吧。這裡簡單講下從代碼推算。

我們來看下。

第一行,聲明變量并指派用一個時間單元;

第二行,首先給i指派,一個時間單元。i<=N是N+1個時間單元。i++是N個時間單元。第二行總共2N+2個時間單元。

第三行,一個加法,一個指派,兩個乘法,一共四個時間單元。執行N次,一共4N個時間單元。

是以這段代碼一共6N+3個時間單元。時間複雜度為O(N);

   一個for循環

時間複雜度O(n)

  嵌套for循環

時間複雜度O(n²)

 三層嵌套語句

時間複雜度為O(n³)。

if/else語句

時間複雜度,是if和else中最長的那個。

簡單的遞歸函數如

相當與一個for的循環,時間複雜的是O(n)

繼續閱讀