时间复杂度
代码运行效率计算
时间复杂度是指算法的执行效率。当我们在运行一段代码的时候可以在代码区前使用time模块,可以对代码区代码运行效率进行计算。
import time
def test(num:int):
total = 0
for i in range(num):
total += i
return total
start_time = time.time()
# 代码区
test(1000)
end_time = time.time()
run_time = end_time - start_time
print('运行时间为%s秒' % (run_time))
多次运行同样的代码,会发现运行时间并不是固定的。这是因为代码的运行速度并不是客观准确的!程序的运行离不开计算机的环境(包括硬件和操作系统),这些客观原因都会影响程序运行速度并反应在程序的执行时间上。那么如何客观的评价一个算法的优劣呢?
时间复杂度
这时,我们引入时间复杂度的概念,时间复杂度是指算法的执行时间与算法输入值之间的关系。
时间复杂度一般关注与对代码运行效率影响最大的代码区内的执行指令数。
N表示数据的规模,O(f(N))表示运行算法所需要执行的指令数,和f(N)成正比。
O(1)
如果函数之中算法执行时间与输入值是没有关系的,那么这个算法的时间复杂度为O(1):
def fun(num:int):
i = num
j = num * 2
return i + j
O(N)
时间复杂度为O(N)的情况:
def fun(num:int):
total = 0
for i in range(num):
total