Skip to content

Commit cb15693

Browse files
committed
BinarySearch.py finally approved
1 parent c733140 commit cb15693

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
def binary_search_iterative(ordered_list, term):
2+
size_of_list = len(ordered_list) - 1
3+
index_of_first_element = 0
4+
index_of_last_element = size_of_list
5+
6+
while index_of_first_element <= index_of_last_element:
7+
mid_point = (index_of_first_element + index_of_last_element)//2
8+
9+
if ordered_list[mid_point] == term:
10+
return mid_point
11+
if ordered_list[mid_point] > term:
12+
index_of_last_element = mid_point - 1
13+
else:
14+
index_of_first_element = mid_point + 1
15+
if index_of_first_element > index_of_last_element:
16+
return None
17+
18+
19+
print("---First Output---\n")
20+
list1 = [10, 30, 100, 120, 500]
21+
22+
search_term = 10
23+
index_position1 = binary_search_iterative(list1, search_term)
24+
if index_position1 is None:
25+
print("The data item {} is not found".format(search_term))
26+
else:
27+
print("The data item {} is found at position {}".format(search_term, index_position1))
28+
29+
print("---Second Output---\n")
30+
31+
list2 = ['book','data','packt', 'structure']
32+
33+
search_term2 = 'structure'
34+
index_position2 = binary_search_iterative(list2, search_term2)
35+
if index_position2 is None:
36+
print("The data item {} is not found".format(search_term2))
37+
else:
38+
print("The data item {} is found at position {}".format(search_term2, index_position2))
39+
40+
41+
42+
print('---Binary Search Recursive---\n')
43+
#Recursive Binary Search
44+
def binary_search_recursive(ordered_list, first_element_index, last_element_index, term):
45+
if last_element_index < first_element_index:
46+
return None
47+
else:
48+
mid_point = (first_element_index + last_element_index) // 2
49+
if ordered_list[mid_point] > term:
50+
return binary_search_recursive(ordered_list, first_element_index, mid_point - 1, term)
51+
elif ordered_list[mid_point] < term:
52+
return binary_search_recursive(ordered_list, mid_point + 1, last_element_index, term)
53+
else:
54+
return mid_point
55+
56+
print("Binary Search Recursive output1--\n")
57+
list1 = [10, 30, 100, 120, 500]
58+
59+
search_term = 10
60+
index_position1 = binary_search_recursive(list1, 0, len(list1)-1, search_term)
61+
if index_position1 is None:
62+
print("The data item {} is not found".format(search_term))
63+
else:
64+
print("The data item {} is found at position {}".format(search_term, index_position1))
65+
66+
print('\n')
67+
68+
print("Binary Search Recursive output2--\n")
69+
list2 = ['book','data','packt', 'structure']
70+
71+
search_term2 = 'data'
72+
index_position2 = binary_search_recursive(list2, 0, len(list1)-1, search_term2)
73+
if index_position2 is None:
74+
print("The data item {} is not found".format(search_term2))
75+
else:
76+
print("The data item {} is found at position {}".format(search_term2, index_position2))

0 commit comments

Comments
 (0)