<每日一题>题目19:简单的程序执行效率面试题
# 将下面的函数按照执行效率高低排序。它们都接受由0至1之间的数字构成的列表作为输入。这个列表可以很长。一个输入列表的示例如下:[random.random() for i in range(100000)]。你如何证明自己的答案是正确的。 def f1(lIn):
l1 = sorted(lIn)
l2 = [i for i in l1 if i<0.5]
return [i*i for i in l2] def f2(lIn):
l1 = [i for i in lIn if i<0.5]
l2 = sorted(l1)
return [i*i for i in l2] def f3(lIn):
l1 = [i*i for i in lIn]
l2 = sorted(l1)
return [i for i in l1 if i<(0.5*0.5)] '''
先筛选肯定用时最短f2用时最短,f3最后才筛选用时最长(这点不太准确,算是猜的),执行效率的顺序是f2>f1>f3
f1和f3的效率需要准确的计算才能确定结果
'''
import random
import cProfile
lIn = [random.random() for i in range(100000)]
cProfile.run('f1(lIn)')# 7 function calls in 0.041 seconds
cProfile.run('f2(lIn)')# 7 function calls in 0.022 seconds
cProfile.run('f3(lIn)')# 7 function calls in 0.047 seconds
<每日一题>题目19:简单的程序执行效率面试题的更多相关文章
- <每日一题>题目16:简单的python练习题(1-10)
#1.python程序中__name__的作用是什么? __name__这个系统变量用来表示程序的运行方式. 如果程序在当前膜快运行,__name__的名称就是__main__, 如果不在(被调用), ...
- <每日一题>题目1:简单的注册和登录1.0
#版本1.0,最基本的注册登录'''1.注册,将账号和密码分别写在不同的文档里面2.登录,分别从账户文档和密码文档进行读取并登录''' #注册 Identity = input("请输入您想 ...
- <每日一题>题目4:for循环套生成器的面试题
题目: def add(n,i): return n+i def test(): for i in range(4): yield i g = test() for n in [1,10,5]: g ...
- <每日一题>题目18:对象组合和对象构造面试题(深度优先和广度优先的问题)
class Node(object): def __init__(self,sName): self._lChildren = [] self.sName = sName def __repr__(s ...
- (转)对《30个提高Web程序执行效率的好经验》的理解
阅读了博客园发布的IT文章<30个提高Web程序执行效率的好经验>,这30条准则对我们web开发是非常有用的,不过大家可能对其中的一些准则是知其然而不知其所以然. 下面是我对这些准则的理解 ...
- 解读30个提高Web程序执行效率的好经验
其实微博是个好东西,关注一些技术博主之后,你不用再逛好多论坛了,因为一些很好的文章微博会告诉你,最近看到酷勤网推荐的一篇文章<30个提高Web程序执行效率的好经验>,文章写得不错,提到一些 ...
- 关于提高python程序执行效率的思路和想法
相比编译型语言(C系列)python胜在简介的语法和优雅的动态编程体验,但是在执行效率上,python有解释性语言先天的劣势——执行效率较低,为了让编写出的程序获得更快的执行效率,开启此文章. pyt ...
- 30条技巧提高Web程序执行效率
尽量避免使用DOM.当需要反复使用DOM时,先把对DOM的引用存到JavaScript本地变量里再使用.使用设置innerHTML的方法来替换document.createElement/append ...
- 30个提高Web程序执行效率的好经验
尽量避免使用DOM.当需要反复使用DOM时,先把对DOM的引用存到JavaScript本地变量里再使用.使用设置innerHTML的方法来替换document.createElement/append ...
随机推荐
- 关于jquery的一些插件
1.fullPage.js插件 fullPage.js 是一个基于 jQuery 的插件,它能够很方便.很轻松的制作出全屏网站.如今我们经常能见到全屏网站,在手机上也经常能看到一些活动页面.这些网站用 ...
- 2019-9-11-在-P2P-文件分享应用以文件或文件段为单位的优缺
title author date CreateTime categories 在 P2P 文件分享应用以文件或文件段为单位的优缺 lindexi 2019-09-11 10:23:27 +0800 ...
- ReentrantLock中的公平锁与非公平锁
简介 ReentrantLock是一种可重入锁,可以等同于synchronized的使用,但是比synchronized更加的强大.灵活. 一个可重入的排他锁,它具有与使用 synchronized ...
- Neo4j 因果集群搭建及neo4j-java-driver连接
搭建Neo4j因果集群 1.下载企业版,当前是3,5,9版本 https://neo4j.com/download-center/#enterprise 2.配置,三个核心集群为例 配置文件,conf ...
- 如何使用webpack 打包图片
最近在学习vue,需要用到webpack打包css,在webpack中文网https://www.webpackjs.com/里只有css的打包配置, 在编写css样式时,因为要引入 背景图片,打包时 ...
- getResourceAsStream的几种路径配置(properties文件的路径问题)
文章目录 getResourceAsStream有以下几种: getResourceAsStream有以下几种: Class.getResourceAsStream(String path) : pa ...
- python函数使用易错举例
关于嵌套: 嵌套使用中, retrun inner ---> 返回的是函数的地址 retrun inner() : ---> 运行inner()函数 ---> 运行i ...
- C#winform datagridview单元格的单击处理
首先看看效果图: 需求:要求是的在datagridview里面绑定数据后,可以任意点击想要点击的某列的单元格进行改变数据.需要在datagridview里面写3个事件 1.RowPrePaint事件: ...
- idea从github中pull或者push成功之后tomcat启动不了,报Error....
解决方案:删除deployment里面的war包,确定. 再在deployment里面重新添加一个war包,确定,即可.
- 搞笑:我是我们村唯一一个搞IT的!
出自:http://codebay.cn/post/8033.html 当我跟村里人提起我是IT工程师时 他们内心是这样想的 ▼ 也有的朋友这样想 ▼ 爸爸问我,什么狮? ▼ 妈妈问我,工什么? ▼ ...