def binarysearch(a,n):
mid=int(len(a)/2) #taking the middle point
if(n==a[mid]):
return mid
elif(n>a[mid]): #if greater then do binarysearch in smaller part
binarysearch(a[(mid+1):],n)
elif(n<a[mid]):
binarysearch(a[0:mid],n)
Hello这是我的代码,我的测试案例是二进制搜索([0,2,4,5],2),它没有返回,但我认为它应该返回1.因为它去
elif(n
def binarysearch(a,n,index):
mid=int(len(a)/2)
if(n==a[mid]):
return (mid+index+1)
elif(n>a[mid]):
index=index+mid
return binarysearch(a[(mid+1):],n,index)
elif(n<a[mid]):
return binarysearch(a[0:mid],n,index)
这效果很好