Hi I'm trying to write a recursive binary search but I'm getting an NameError. My code is as follows:
This is for a self development project im working on in python.
def search(self, list, list_start, list_end, search_for):
if list_end >= list_start:
mid_point = int(list_start + (list_end - list_start) / 2)
if list[mid_point] == search_for:
return mid_point
elif list[mid_point] > search_for:
return search(list, list_start, mid_point-1, search_for)
else:
return search(list, mid_point+1, list_end, search_for)
else:
return -1
binaryS = BinarySearchModel()
list = [22, 2, 1, 24, 3, 43, 10, 40, 0, 48, 34, 19, 5, 3, 45]
x = 24
sorted_list = binaryS.sort_arr(list)
print('Print sorted list {}'.format(sorted_list))
result = binaryS.search(sorted_list, 0, len(sorted_list)-1, x)
on the second recursive call is where I'm getting the error:
Traceback (most recent call last):
File "binary_search_model.py", line 29, in <module>
result = binaryS.search(sorted_list, 0, len(sorted_list)-1, x)
File "binary_search_model.py", line 19, in search
return search(list, mid_point+1, list_end, search_for)
NameError: name 'search' is not defined