二元搜索与python一起递归

问题描述 投票:0回答:1
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)

这效果很好

python recursion binary-search
1个回答
0
投票
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.