新建一个时间计算程序,cal_time.py
#用于计算时间复杂度的程序
import time
def cal_time(func):
def wrapper(*args,**kwargs):
t1 = time.time()
result = func(*args, **kwargs)
t2 = time.time()
print("%s running time: %s secs." % (func.__name__,t2 - t1))
return result
return wrapper
新建一个 查找比较的程序
这里采用了装饰器;
from cal_time import *
@cal_time
def linear_search(li,val):
for ind,v in enumerate(li):
if v == val:
return ind
else:
return None
@cal_time
def binary_search(li,val):
left=0
right=len(li)-1
while left<=right: #说明候选区有值;
mid = (left+right) // 2
if li[mid] == val:
return mid
elif li[mid] > val:
right = mid -1
else: #mid<val 说明待查找的值在右侧;
left = mid +1
else:
return None
li=list(range(1000000))
linear_search(li,543)
binary_search(li,543)