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 简单算法优化的主要内容,如果未能解决你的问题,请参考以下文章

简单遗传算法优化简单一元函数(python)

python 简单粒子群优化(SimplePSO)算法。

15种Python片段去优化你的数据科学管道

排序算法冒泡选择排序的Python实现及算法优化详解

python 用于在终端中运行的sublime text 3的简单代码片段制作工具

python有没有简单的遗传算法库