# 将下面的函数按照执行效率高低排序。它们都接受由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

最新文章

  1. JAVA与数据库MySQL相连接
  2. ng-app一些使用
  3. Handler使用总结(转)
  4. app之间的跳转,进入二级界面
  5. 【iCore、iCore2 双核心板】EPCS 实验(SPI Flash)(基于Verilog语言)
  6. poj3304Segments(直线与多条线段相交)
  7. Unity3D-Baked Lightmapping 示例学习
  8. IIS部署网站局域网内无法访问
  9. What is an eigenvector of a covariance matrix?
  10. The 5th Zhejiang Provincial Collegiate Programming Contest------ProblemA:Accurately Say &quot;CocaCola&quot;!
  11. cholesky分解
  12. Android中的四层架构,五块区域
  13. ExtJs--02--MessageBox相关弹出窗口alert,prompt,confirm采用
  14. if和switch的原理
  15. apache: apache-tomcat-6.0.35完整下载
  16. Linux学习之CentOS(十四)----磁盘管理之 硬连接与软件连接(转)
  17. C#删除WebBrowser控件Session
  18. 网站图标 favicon.ico
  19. Redis学习之路(000)- 目录
  20. 最小生成树 - 克鲁斯卡尔 - 并查集 - 边稀疏 - O(E * logE)

热门文章

  1. js实现图片资源、blob、base64的各种场景转换
  2. SPN扫描利用
  3. Ansible的copy模块批量下发文件
  4. JS函数 函数的作用,可以写一次代码,然后反复地重用这个代码。
  5. element-ui表格点击一行展开
  6. Linux queue.h之TAILQ队列分析
  7. 【数论分块】[BZOJ2956、LuoguP2260] 模积和
  8. redis随记
  9. 8-5接口测试用例设计与编写2 rest-assured
  10. 期望dp+高斯消元优化——uvalive4297好题