python测试算法运行时间函数

摘要:
1.计算运行程序的时间函数(python版本)importTimedefcal_time(func):defwrapper(*args,**kwargs):t1=时间。perf_counter()result=func(*args,**kwargs)t2=时间。perf_ counter()打印(“%srunningtime:%ssec.”%(函数__name__,t2-t1))
1、计算程序运行的时间函数(python版本)
import time
def cal_time(func):
def wrapper(*args,**kwargs):
t1=time.perf_counter()
result=func(*args,**kwargs)
t2=time.perf_counter()
print("%s running time: %s sec." %(func.__name__,t2-t1))
return result
return wrapper
2、测试不同算法运行时间使用案例:
以顺序查找算法和二分查找算法为例:
#导入函数运行时间测试函数
from cal_time import *
#查找算法
#顺序查找/线性查找算法的含义
@cal_time
def linear_search(l,v):
for i in range(len(l)):
if l[i]==v:
return i

#二分查找算法(有序的排列列表之下使用二分法)
@cal_time
def binary_search(l,v):
left=0
right=len(l)-1
while(left<right):
mid = (left + right) // 2
if l[mid]==v:
return mid
elif l[mid]<v:
left=mid+1
else:
right=mid-1

l=list(range(10000))
v=3890
binary_search(l,v)
linear_search(l,v)

运行结果展示如下所示:

binary_search running time: 7.299999999987872e-06 sec.
linear_search running time: 0.00017319999999998448 sec.



免责声明:文章转载自《python测试算法运行时间函数》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇四元数运动学笔记(4)旋转的雅克比矩阵WebDev.WebServer40.exe改造,自己制作轻量级asp.net网站IIS服务下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux下多版本python共存时,默认执行路径修改方法

遇到的问题和环境是这样:首先workspace上存在一个Python2.7和一个Python3.5,其中Python3.5是理想的运行环境,有很多自定义模块,运行代码时需要这个环境。原本默认是在这个环境下跑的,后来安装了一个叫miniconda3的东西,里面自带一个Python3.7环境,于是问题来了,所有执行程序全部变成了使用这个新的Python3.7环...

pip install 默认安装路径修改

一、使用命令查看pip默认安装目录 python -m site 这里的USER_BASE和USER_SITE其实就是默认的启用Python通过pip自动下载的脚本和依赖安装包的基础路径。 接着使用命令python -m site -help,便会看到如下:  以上说明了,路径的配置是在我们安装目录下的/root/anaconda3/lib/pytho...

python 批量ping服务器

最近在https://pypi.python.org/pypi/mping/0.1.2找到了一个python包,可以用它来批量ping服务器,它是中国的大神写的,支持单个服务器、将服务器IP写在txt或json里都可以。 具体用法有中文文档,感谢作者youfou 这里我改了几个字,方便我这种英文不好的同学使用 mping.py #!/usr/bin/en...

ROS惯导数据发布(Python)

一、背景   基本配置:ubuntu 16.04,ROS Kinetic   惯导型号:维特智能 WT61C(六轴惯导)   维特智能官方提供的参考程序是通过手动比较各个字节来确定数据包/数据帧的,个人认为比较繁琐,因此采用Python的re(正则表达式)和struct(字节处理)模块简化其数据匹配和提取,并实现惯导数据在ROS中的发布。 二、程序   惯...

python 发送邮件(附件名称为中文)

import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart mailto_list = ["to_name@163.com"] mail_host = "smtp.163.com" mail_user = "user_...

初识gauge自动化测试框架

segmentfault阅读 官方网站:https://docs.gauge.org/latest/index.html ###介绍: Gauge是一个轻量级的跨平台测试自动化工具,可以使用不同的语言中编写测试用例的能力。Gauge本质上是一个BDD(行为驱动开发)测试框架。如果你了解BDD那么将会比较容易的了解了Gauge工具的使用。 相比较一般的BD...