python 简单算法优化
Posted 星辰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 简单算法优化相关的知识,希望对你有一定的参考价值。
-
计算机界著名公式,由瑞士计算机科学家尼克劳斯.威茨(Niklaus Wirth)提出,也因此获得图灵奖
程序 = 数据结构 + 算法
没有看过数据结构和算法,有时面对问题可能会没有任何思路,不知如何下手去解决;
大部分时间可能解决了问题,可是对程序运行的效率和开销没有意识,性能低下;
有时会借助别人开发的利器暂时解决了问题,可是遇到性能瓶颈的时候,又不知该如何进行*针对性的优化* -
模拟场景
a,b,c三个数
1. a+b+c = 1000(0--1000)
2.a**2 +b**2 = c**2
求a,b,c可能的组合??? - 普通的
import time s_time = time.time() import datetime starttime = datetime.datetime.now() print(starttime) for a in range(1,1001): for b in range(1,1001): for c in range(1, 1001): if a+b+c == 1000 and a**2 + b**2 == c**2: print("a= %s,b= %s,c= %s"% (a,b,c)) endtime = datetime.datetime.now() yonghsi = endtime - starttime print("消耗的时间为:%s"%yonghsi)
-
- 时间
- 算法优化
import time starttime = time.time() print(starttime) for a in range(1,1001): for b in range(1,1001): c = 1000 - a - b if a**2 + b**2 == c**2: print("a= %s,b= %s,c= %s"% (a,b,c)) endtime = time.time() print(endtime) yongshi = endtime-starttime print("总耗时为:%s" % yongshi)
-
- timeit (python内置测试模块)
import timeit #python内置的性能测试模块 def func(): for a in range(1, 1001): for b in range(1, 1001): c = 1000 - a - b if a ** 2 + b ** 2 == c ** 2: print("a= %s,b= %s,c= %s" % (a, b, c)) timer01 = timeit.Timer("func()","from __main__ import func") #Timer(第一个位置写你要为哪个函数进行性能测试。第二个位置是从哪引入这个函数) print(timer01.timeit(10)/10) #此处timeit()表示测试次数 #1.2070892295
2020-01-07 00:08:26
以上是关于python 简单算法优化的主要内容,如果未能解决你的问题,请参考以下文章