import matplotlib.
pyplot as plt
import time
def binary_search_recursive(arr, target, low, high):
if low > high:
return -1
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] > target:
return binary_search_recursive(arr, target, low, mid-1)
else:
return binary_search_recursive(arr, target, mid+1, high)
# Example usage
arr = [1, 3, 5, 7, 9, 100 ,770]
target = 770
start_time = time.time()
index = binary_search_recursive(arr, target, 0, len(arr)-1)
end_time = time.time()
print("Index of", target, "in", arr, "is", index)
print("Time taken:", end_time - start_time)
# Plotting time complexity
arr_size = 100000
arr = [i for i in range(arr_size)]
target = arr[-1]
times = []
for i in range(arr_size):
start_time = time.time()
binary_search_recursive(arr, target, 0, len(arr)-1)
end_time = time.time()
times.append(end_time - start_time)
plt.title("Binary Search Time Complexity")
plt.xlabel("Input size")
plt.ylabel("Time takem")
plt.plot(times)
plt.show()