zoukankan      html  css  js  c++  java
  • 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
     
    落后就要吃土,努力吧,骚年!!!
  • 相关阅读:
    sublime text3 安装SublimeCodeIntel插件
    进入博客园的第一天
    .NET之Hangfire快速入门和使用
    图片相似性 d-hash算法 C#实践
    同一个Docker swarm集群中部署多版本的测试环境
    C#创建单链表,翻转单链表
    halcon例程学习 一维测量之矩形边缘
    halcon例程学习 一维测量之弧形边缘
    python 圆曲线
    python pygame黑客帝国的简单实现
  • 原文地址:https://www.cnblogs.com/u-damowang1/p/12159151.html
Copyright © 2011-2022 走看看