Skip to Main Content
Blog

Binary Search in Python

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