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))
Comments