import random import time sorted_list_len = random.randint(10,20) sorted_list = [] i = 0 while(len(sorted_list) < sorted_list_len): i += 1 sorted_list.append(i) searched_item = sorted_list[random.randint(0,len(sorted_list)-1)] #searched_item = 30 def binary_search(sorted_list,searched_item): left = 0 #print("left",left) #time.sleep(2) right = len(sorted_list) - 1 #print("right",right) #time.sleep(2) while(left <= right): mid = int((right + left) / 2) #print("mid",mid) #time.sleep(2) if(sorted_list[mid] > searched_item): right = mid - 1 #print("left",left) #print("right",right) #time.sleep(2) elif(sorted_list[mid] < searched_item): left = mid + 1 #print("left",left) #print("right",right) #time.sleep(2) elif(sorted_list[mid] == searched_item): return sorted_list[mid] else: return False print("sorted_list",sorted_list) print("searched_item",searched_item) print(binary_search(sorted_list,searched_item))