1。定義
數學符號描述了執行時間上限或使用算法空間的上限。它表示為[,其中 f(n)是一個函數,它根據輸入大小表示時間或空間。
2。目的
算法比較
:允許您比較不同的算法並為給定問題選擇最有效的效率。
:它有助於預測算法在增加數據量時將如何行為。
-
3。複雜性分析
-
糟糕的情況:指算法需要更長或使用更多資源的情況。大或通常是指
。
更好的情況和平均情況
:儘管它們很重要,但它們用於大O的頻率較低。
-
4。空間與時間
-
臨時復雜性:它是指執行算法所需的時間。
空間複雜度
:是指您使用的其他內存的數量。您可以具有
或(1)
(常數空間)或- (線性空間)等符號。
例子:
-
導入時間
導入matplotlib.pyplot作為PLT
進口CPROFILE
#o(1)
DEF CONSTANT_TIME_OPERATION():
返回42
#o(log n)
def Googarithmic_time_operation(n):
計數= 0
而n> 1:
n // = 2
計數= 1
返回計數
#或(n)
def linear_time_operation(n):
總計= 0
對於(n)範圍內的我:
總計= i
總回報
#o(n log n)
def linear_logarithmic_time_operation(n):
如果n
謝謝您的閱讀!
我反應和看法