python测试算法运行时间函数
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.