Функция двоичного поиска, использующая рекурсию, возвращающую «Нет» - PullRequest
0 голосов
/ 21 февраля 2020

Я написал код для двоичного поиска. Он печатает среднее значение, но не возвращает его при выходе из функции.

def binarysearch(array,low,high,key):
  mid=(low+high)//2
  if array[mid]==key:
    print ('arrar[mid]: ',array[mid],'mid= ', mid)
     return mid
  elif key> array[mid]:
    binarysearch(array, low+1, high,key)
  elif key<array[mid]:
    binarysearch(array,low,mid-1,key)
  else:
    return -1


data=[1,2,3,4,5]
result=binarysearch(data,0,5,5)
print('result=',result)

output:

 arrar[mid]: 5 mid =4
 result=None

1 Ответ

0 голосов
/ 21 февраля 2020
elif key> array[mid]:
binarysearch(array, low+1, high,key)

должно быть

elif key> array[mid]:
binarysearch(array, mid, high,key)
...