循环代码优化测试

谨记,从开始就要培养良好的代码习惯。
时间复杂度衡量算法的效率,而循环语句更能直接的体现程序的效率。

引用高淇老师的教导:

  1. 尽量减少循环内部不必要的计算
  2. 嵌套循环中,尽量减少内层循环的计算,尽可能向外提。
  3. 局部变量查询较快,尽量使用局部变量
    即LEGB规则

下面我们用一段代码来测试内循环计算量不同的情况下程序运行时间的不同:

#循环代码优化测试
import time
start = time.time()
for i in range(1000):
    result = []
    for m in range(10000):
        result.append(i*1000+m*100)
end = time.time()
print("耗时:{0}".format((end-start)))

start2 = time.time()
for i in range(1000):
    result = []
    c = i*1000
    for m in range(10000):
        result.append(c+m*100)
end2 = time.time()
print("耗时:{0}".format((end2-start2)))

运行结果为:
耗时:2.6927947998046875
耗时:2.1851699352264404

而当我把内循环次数进一步增大为100000时的运行结果为:
耗时:27.680909395217896
耗时:22.808008670806885
可见上方程序要比下方程序多花费21.4%的时间。

最后强调三遍:

  1. 尽量减少循环内部不必要的计算
  2. 嵌套循环中,尽量减少内层循环的计算,尽可能向外提。
  3. 局部变量查询较快,尽量使用局部变量
  4. 尽量减少循环内部不必要的计算
  5. 嵌套循环中,尽量减少内层循环的计算,尽可能向外提。
  6. 局部变量查询较快,尽量使用局部变量
  7. 尽量减少循环内部不必要的计算
  8. 嵌套循环中,尽量减少内层循环的计算,尽可能向外提。
  9. 局部变量查询较快,尽量使用局部变量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值