Binary Search in Python
def main():
# Read array from user input
array_str = input("Enter array (comma-separated): ")
seq = [int(x.strip()) for x in array_str.split(",")]
print(seq)
# Example: search for a key
key = int(input("Enter key to search: "))
idx = binary_search(seq, key)
print("Result:", idx)
def binary_search(seq, key):
beg = 0
end = len(seq) - 1 # adjust: last valid index
while beg <= end:
mid = beg + (end - beg) // 2
if seq[mid] < key:
beg = mid + 1
elif seq[mid] > key:
end = end - 1 if mid == end else mid - 1
else:
return mid
return -beg
if __name__ == "__main__":
main()
def main():
# Read array from user input
array_str = input("Enter array (comma-separated): ")
seq = [int(x.strip()) for x in array_str.split(",")]
print(seq)
# Example: search for a key
key = int(input("Enter key to search: "))
idx = recursive_binary_search(seq, key)
print("Result:", idx)
def recursive_binary_search(seq, key):
return _recursive_binary_search(seq, 0, len(seq) - 1, key)
def _recursive_binary_search(seq, beg, end, key):
if end < beg:
return -1
mid = (beg + end) // 2
if seq[mid] > key:
return _recursive_binary_search(seq, beg, mid - 1, key)
elif seq[mid] < key:
return _recursive_binary_search(seq, mid + 1, end, key)
else:
return mid
if __name__ == "__main__":
main()