def binary_search(input_array, value):
right_search=[]
left_search=[]
"""Your code goes here."""
if len(input_array)%2==0:
mid_ind=(len(input_array)/2)-1
else:
mid_ind=int(len(input_array)/2)
if input_array[mid_ind]==value:
return mid_ind
elif input_array[mid_ind]<value:
for ri in range(mid_ind+1,len(input_array)):
right_search.append(input_array[ri])
if right_search==[]:
return -1
binary_search(right_search,value)
elif input_array[mid_ind]>value:
for li in range(0,mid_ind):
left_search.append(input_array[li])
if left_search==[]:
return -1
binary_search(left_search,value)
test_list = [1,3,9,11,15,19,29]
test_val1 = 25
test_val2 = 15
print (binary_search(test_list, test_val1))
print (binary_search(test_list, test_val2))
it prints out none for both the test cases.i have used recursion for every sub array in main array.so that if mid element not matches the value to be found.It creates a left or right sub array according to value and then using recursion