Skip to content

Commit 9222b6c

Browse files
committed
ExponentialSearch.py finally approved
1 parent 06013f1 commit 9222b6c

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
def binary_search_recursive(ordered_list, first_element_index, last_element_index, term):
2+
if (last_element_index < first_element_index):
3+
return None
4+
else:
5+
mid_point = first_element_index + ((last_element_index - first_element_index) // 2)
6+
if ordered_list[mid_point] > term:
7+
return binary_search_recursive (ordered_list, first_element_index, mid_point-1, term)
8+
elif ordered_list[mid_point] < term:
9+
return binary_search_recursive (ordered_list, mid_point+1, last_element_index, term)
10+
else:
11+
return mid_point
12+
13+
def exponential_search(A, search_value):
14+
if A[0] == search_value:
15+
return 0
16+
index = 1
17+
while index < len(A) and A[index] < search_value:
18+
index*=2
19+
return binary_search_recursive(A, index//2, min(index, len(A)-1), search_value)
20+
21+
22+
print(exponential_search([1,2,3,4,5,6,7,8,9, 10, 11, 12, 34, 40], 34))

0 commit comments

Comments
 (0)