python官网下载好慢1001python官网下载好慢-Python|时间复杂度测试
本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。
问题描述
由我们所知每一个python程序的运行都是很多次的算法变成的,而计算机进行计算一定会花费时间,而我们在学习python基础时已经知道python相对其他语言来说是相对比较慢的。这样的差异我们称为时间复杂度。可能在一般情况下我们看不出时间的差异,那么我们接下来就将对时间进行测试。
解决方案
我们进行测试的题目很简单:如果a+b+c=1000,并且a**2+b**2=c**2,求abc的组合。
我们先用最简单的方法进行计算,就是将a,b,c分别放入(0,1000)内,分别一个一个的尝试,最后确定a,b,c的确定值。但是这里我们为了测试时间,我们要引用第三方库来记录程序的运行时间。
代码示例:import time
start_time = time.time()
for a in range(1001):
for b in range(1001):
for c in range(1001):
if a + b + c == 1000 and a**2 + b**2 == c**2:
print("a,b,c:%d,%d,%d"%(a,b,c))
end_time = time.time()
used_time= end_time - start_time
print(used_time)
这里我们可以推算计算机就进行的运算次数为1000*1000*1000*2(将if语句看作为一步)
图1 运行结果
可以看出,进行这次运算大约使用了146秒,其实便可以看出python运行速度慢的问题了。
然后我们将代码简化为 c = 1000-a-b的形式,这样问题便被简化了,我们可以推算运算次数为1000*1000*3。
代码示例:import time
start_time = time.time()
for a in range(1001):
for b in range(1001):
# for c in range(1001):
c = 1000 - a - b
if a**2 + b**2 == c**2:
print("a,b,c:%d,%d,%d"%(a,b,c))
end_time = time.time()
used_time= end_time - start_time
print(used_time)
图2 运行结果2
可以看到在这个程序下,我们运行时间不足1秒,而我们仅仅只是优化了一步。两者相比,第一个比第二个快了许多。这种差异就叫做时间复杂度的差异。在算法中我们经常需要将一个程序简化,以达到最佳运算的目的。
结语
在算法中,我们经常会想要限制自己程序的运行时间,然后对其进行优化,达到最佳的运行时间。我们便也可以通过这种简单的方式来进行测量。
python官网下载好慢1001python官网下载好慢-Python|时间复杂度测试相关推荐
- 在python官网如何下载手机版_Python教学免费下载-Python教学appv1.0 官方版-腾牛安卓网...
Python教学app,专为Python语言学习打造的在线教育平台,零基础学Python,各种编程知识轻松掌握,快速提升个人编程能力.Python教学还有大量实战知识,边学边练习,更好掌握Python ...
- python教程之打包python源码上传的PyPI官网
为什么打包源码 如果你想让你的实现的python代码,通过pip install 方式供所有人进行下载:那就需要将代码上传到PyPi上,这样才能让所有人使用: 如何打包源码上传: 前提条件: 1.有一 ...
- 下载keep运动软件_Keep运动软件官网下载_Keep运动最新官网下载_18183软件下载
Keep运动官网下载怎么样?不妨来18183下载试试!1.8亿运动爱好者都在Keep体验健身.跑步.骑行.计步功能,ta就是移动健身教练和饮食指导老师.Keep帮助人们随时随地练就完美身材,开启健康生 ...
- 官网mysql安装目录_官网下载MySQL 并安装
官网下载MySQL 并安装 一.下载 二.安装:这里不再叙述安装步骤 三.MySQL环境变量配置不是必须的. MySQL环境变量作用: 找到MySQL安装目录下的bin目录,才能使用MySQL相关命令 ...
- 华为方舟编译器开源官网正式上线:源代码已开放下载;中兴通讯与北京交通大学、中国移动北京公司签署 “5G战略合作框架协议”……...
关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...
- 吐槽一下,英伟达Nvidia官网下载驱动及相关资源,下载完全是打不开的文件
吐槽一下,英伟达Nvidia官网下载驱动及相关资源,下载完全是打不开的文件 无论下载什么 都是三四十K的文件,无法打开 换了N中浏览器和环境都一样 你们也遇到了么?
- 如何从官网下载jdk_如何从官网下载itunes
直接进3gqq,然后去手机腾讯网点击下载,然后输入手机型号就可以直接下载软件了,望采纳 . 下载:初学JAVA,一般我要用的是JDK(JAVASEDEVELOPMENTKIT)JDK也有很多公司在研发 ...
- Oracle官网所有JDK及JRE历史版本下载地址
Oracle官网所有JDK及JRE历史版本下载地址 访问 https://www.oracle.com/java/technologies/javase/javase8-archive-downloa ...
- 【软件包合集】keil C51 C251 MDK V5 V4 v3 v2 所有版本软件包下载(包括最新)【官网地址】
keil 所有版本软件包官方下载地址 目录 keil 所有版本软件包官方下载地址 MDK536版本 基本没有变动(更新日期2021年06月30日) MDK5版本更新说明 MDK4版本更新说明 C2 ...
最新文章
- 编译原理四种文法的理解补充
- Intellij IDEA设置运行时Java参数
- java移位操作符注意的问题
- 使用Eclipse进行Javaweb项目开发时,如何设置外置浏览器Chrome
- [转载]MVP(SC),MVP(PV),PM,MVVM 和 MVC 表现模式架构对比
- android弹窗不能手动关闭_vue3.0系列:Vue3自定义PC端弹窗组件V3Layer
- SQL分页查询方案的性能对比
- 程序员求助:被领导强行要求写Bug该怎么办?网友的回答让我笑翻
- [转载] Python轻量Web框架Flask使用
- 我花了20年研究华为:绝大多数失败的企业,都毁在了老板的自私上
- Codeforces1221 C. Perfect Team
- python 修改文件只读_Python脚本去除文件的只读性操作
- Pr 入门教程 如何使用超级键效果?
- emui系统就是鸿蒙吗,华为EMUI是不是鸿蒙系统
- iOS开发系列--数据存取
- C 语言 —— % 运算符
- 测试信号处理-模拟滤波器概述
- Android Q(10.0)黑暗主题
- win8无法打开Oracle 12c的企业管理控制台解决方案
- 笔记:Head First设计原则和设计模式
热门文章
- P3916 图的遍历
- [CF314C](Sereja and Subsequences)
- python中requests.session的妙用
- linux内核编译及系统裁减
- python的socket编程
- 浅谈Logistic回归及过拟合
- C 这些东西的内存管理
- 计算机文件系统小结,文件系统总结.doc
- iview构建基本html页面,使用vue-cli创造基于vue.js的iview工程
- python使用符号#表示单行注释-【经济金融及Python应用讲义】Python编程规范之注释...