Python数据结构与算法(一)

时间复杂度

代码运行效率计算

时间复杂度是指算法的执行效率。当我们在运行一段代码的时候可以在代码区前使用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 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值