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
谢谢您的阅读!
我反应和看法