码迷,mamicode.com
首页 > 编程语言 > 详细

python 简单算法优化

时间:2020-01-07 00:26:44      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:port   ima   date   nbsp   16px   计算机科学   pytho   第一个   ==   

  • 计算机界著名公式,由瑞士计算机科学家尼克劳斯.威茨(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 简单算法优化

标签:port   ima   date   nbsp   16px   计算机科学   pytho   第一个   ==   

原文地址:https://www.cnblogs.com/u-damowang1/p/12159151.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!