from math import floor
def binary_search(Array, Search_Term):
n = len(Array)
L = 0
R = n-1
while L <= R:
mid = floor((L+R)/2)
# print values of L,R and mid
print(L,mid,R)
if Array[mid] < Search_Term:
L = mid + 1
elif Array[mid] > Search_Term:
R = mid - 1
else:
return mid
return -1
# Insert your array here
A = [ 1, 2, 3, 4, 7, 14, 14, 15, 18]
# term to be searched
term = 14
index = binary_search(A, term)
if index >= 0:
print("{} is at index {}".format(A[index], index))
else:
print("Search term not found")
ZnJvbSBtYXRoIGltcG9ydCBmbG9vcgoKZGVmIGJpbmFyeV9zZWFyY2goQXJyYXksIFNlYXJjaF9UZXJtKToKICAgIG4gPSBsZW4oQXJyYXkpCiAgICBMID0gMAogICAgUiA9IG4tMQogICAgCiAgICB3aGlsZSBMIDw9IFI6CiAgICAgICAgbWlkID0gZmxvb3IoKEwrUikvMikKICAgICAgICAjIHByaW50IHZhbHVlcyBvZiBMLFIgYW5kIG1pZAogICAgICAgIHByaW50KEwsbWlkLFIpCiAgICAgICAgaWYgQXJyYXlbbWlkXSA8IFNlYXJjaF9UZXJtOgogICAgICAgICAgICBMID0gbWlkICsgMQogICAgICAgIGVsaWYgQXJyYXlbbWlkXSA+IFNlYXJjaF9UZXJtOgogICAgICAgICAgICBSID0gbWlkIC0gMQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHJldHVybiBtaWQKICAgIHJldHVybiAtMQoKCiMgSW5zZXJ0IHlvdXIgYXJyYXkgaGVyZQpBID0gWyAxLCAyLCAzLCA0LCA3LCAxNCwgMTQsIDE1LCAxOF0KIyB0ZXJtIHRvIGJlIHNlYXJjaGVkCnRlcm0gPSAxNAppbmRleCA9IGJpbmFyeV9zZWFyY2goQSwgdGVybSkKaWYgaW5kZXggPj0gMDoKICAgIHByaW50KCJ7fSBpcyBhdCBpbmRleCB7fSIuZm9ybWF0KEFbaW5kZXhdLCBpbmRleCkpCmVsc2U6CiAgICBwcmludCgiU2VhcmNoIHRlcm0gbm90IGZvdW5kIikg