#python二分查找
def bin_search(lst,x):
low=0
hi=len(lst)-1
while hi>=low:
mid=(low+hi)//2
if x<lst[mid]:
hi=mid-1
elif x>lst[mid]:
low = mid + 1
else:
return True
return False
#查看二分查找的运行时长
import numpy as np
import random
ns=np.linspace(100,10_000,50,dtype=int)
ts_binary=[timeit.timeit('bin_search(alist,0)',setup='alist=list(range({}))'.format(n),
globals=globals(),number=100) for n in ns]
plt.plot(ns,ts_binary,'sg')
plt.show()