-
Notifications
You must be signed in to change notification settings - Fork 148
/
Copy pathbinary_search.py
30 lines (27 loc) · 970 Bytes
/
binary_search.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
def binary_search(arr, low, high, x):
if high >= low:
mid = (high + low) // 2
# If element is present at the middle itself
if arr[mid] == x:
return mid
# If element is smaller than mid, then it can only be present in left subarray
elif arr[mid] > x:
return binary_search(arr, low, mid - 1, x)
# Else the element can only be present in right subarray
else:
return binary_search(arr, mid + 1, high, x)
else:
# Element is not present in the array
return -1
# Test array
arr = list(map(int,input("Enter array values : ").split()))
x = int(input("Enter number to search : "))
arr.sort()
print("Sorted elements are : ",arr)
# Function call
result = binary_search(arr, 0, len(arr)-1, x)
#Printing result
if result != -1:
print("Element is present at index", str(result))
else:
print("Element is not present in array")