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