• 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
     
    落后就要吃土,努力吧,骚年!!!
  • 相关阅读:
    flv网页视频播放
    Select显示多级分类列表
    DateTime获取一个月的第一天和最后一天
    服务器不装Excel读取Excel并转换DataTable
    ScriptX使用
    CheckBoxList 全选(jquery版本)
    div绝对定位针对手机浏览器的区别
    JAVA 基础编程练习题22 【程序 22 递归求阶乘】
    JAVA 基础编程练习题21 【程序 21 求阶乘】
    JAVA 基础编程练习题20 【程序 20 求前 20 项之和】
  • 原文地址:https://www.cnblogs.com/u-damowang1/p/12159151.html
Copyright © 2020-2023  润新知