常用的時間複雜度分析方法

飞越人海cy發表於2024-04-15

分析時間複雜度有三個比較有用的方法:

1. 只關注迴圈次數最多的一段程式碼。

  

時間複雜度,也叫做大O表示法,代表了一種變化趨勢。我們會忽略掉公式中的 常量 ,低階, 係數。因為這些都對於增長趨勢沒有決定性的影響。只需要記錄最大階的量級即可。

因此在分析一段程式碼或者一個演算法的時間複雜度的時候,也只需要關注執行次數最多的那一段程式碼就可以了。 上面代迴圈了n次,因此其時間複雜度就是O(n);

2. 加法法則:總複雜度等於量級最大的那段程式碼的複雜度。

三段程式碼的時間複雜度分別如上,因此整段程式碼的時間複雜度就是量級最大的那段程式碼的時間複雜度 O(n^2)

3.乘法法則:巢狀程式碼的時間複雜度等於巢狀內外程式碼的複雜度的乘積

單獨看cal函式,如果把f()想象成一個常規的操作,比如一個常量,那麼cal的複雜度就是O(n),但是f()不是一個常規操作,他的複雜度是O(n),所以整個cal()函式的時間複雜就是O(n*n).

相關文章