29 lines
1014 B
Python
29 lines
1014 B
Python
# iterative version of the code
|
|
# def find(search_list: list[int], value: int) -> int:
|
|
# left: int = 0
|
|
# right: int = len(search_list) - 1
|
|
# search_list.sort()
|
|
# while left <= right:
|
|
# middle_index: int = (left + right) // 2
|
|
# if value < search_list[middle_index]:
|
|
# right = middle_index - 1
|
|
# elif value > search_list[middle_index]:
|
|
# left = middle_index + 1
|
|
# else:
|
|
# return middle_index
|
|
# raise ValueError(f"value not in array")
|
|
|
|
|
|
# recursive version of the code
|
|
def find(search_list: list[int], value: int) -> int:
|
|
middle_index: int = (len(search_list) - 1) // 2
|
|
search_list.sort()
|
|
if search_list == []:
|
|
raise ValueError("value not in array")
|
|
if value < search_list[middle_index]:
|
|
return find(search_list[:middle_index], value)
|
|
elif value > search_list[middle_index]:
|
|
return (middle_index + 1) + find(search_list[middle_index + 1:], value)
|
|
else:
|
|
return middle_index
|