我在争取时间 不同大小的二进制搜索。我只得到2097152与这个计划。我是python新手。我知道缩进在python中是至关重要的。有压痕吗?谢谢
import time
def bsearch(a,first,last,key):
if first>last:
#print "not found"
return
mid=(first+last)//2
if key==a[mid]:
#print "found"
return
elif key>a[mid]:
bsearch(a,mid+1,last,key)
else:
bsearch(a,first,mid-1,key)
a=[1]*2097152
sizes=[128,512,2048,8192,32768,131072,524288,2097152]
for i in range(0,8):
for j in range(0,sizes[i]):
a[j]=j
start=time.time()
for k in range(0,20000):
bsearch(a,0,j-1,j)
stop=time.time()
print ("time for size "+str(j)+" is: "+str((stop-start)*1000))
下面的版本使用^{} 来度量在给定大小的列表上执行
bsearch
2000次所需的时间。在我的机器上结果是编辑:
如果您使用的是Python版本<;3.5,
globals
在timeit
中不可用。您可以改为import
从__main__
相关问题 更多 >
编程相关推荐