def binary_search(list, element):
middle = 0
start = 0
end = len(list)
steps = 0
while(start<=end):
print("Step",steps,":",str(list[start:end+1]))
steps = steps + 1
middle = (start + end) // 2
if element == list[middle]:
return middle
if element < list[middle]:
end = middle - 1
else:
start = middle + 1
return -1
my_list = [1,2,3,4,5,6,7,8,9]
target = 2
print("Return",binary_search(my_list, target))
ZGVmIGJpbmFyeV9zZWFyY2gobGlzdCwgZWxlbWVudCk6CgltaWRkbGUgPSAwCglzdGFydCA9IDAKCWVuZCA9IGxlbihsaXN0KQoJc3RlcHMgPSAwCgkKCXdoaWxlKHN0YXJ0PD1lbmQpOgoJCXByaW50KCJTdGVwIixzdGVwcywiOiIsc3RyKGxpc3Rbc3RhcnQ6ZW5kKzFdKSkKCQkKCQlzdGVwcyA9IHN0ZXBzICsgMQoJCW1pZGRsZSA9IChzdGFydCArIGVuZCkgLy8gMgoKCQlpZiBlbGVtZW50ID09IGxpc3RbbWlkZGxlXToKCQkJcmV0dXJuIG1pZGRsZQoJCWlmIGVsZW1lbnQgPCBsaXN0W21pZGRsZV06CgkJCWVuZCA9IG1pZGRsZSAtIDEKCQllbHNlOgoJCQlzdGFydCA9IG1pZGRsZSArIDEKCQkKCXJldHVybiAtMQoKbXlfbGlzdCA9IFsxLDIsMyw0LDUsNiw3LDgsOV0KdGFyZ2V0ID0gMgoKcHJpbnQoIlJldHVybiIsYmluYXJ5X3NlYXJjaChteV9saXN0LCB0YXJnZXQpKQoK
Step 0 : [1, 2, 3, 4, 5, 6, 7, 8, 9]
Step 1 : [1, 2, 3, 4]
Return 1