From 6ba3e6da6ff10a414087c7178725ab19f4543170 Mon Sep 17 00:00:00 2001 From: ragu-1997 <81232337+ragu-1997@users.noreply.github.com> Date: Sat, 22 Oct 2022 13:17:26 +0530 Subject: [PATCH] Create binary_search.py --- Python/binary_search.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 Python/binary_search.py diff --git a/Python/binary_search.py b/Python/binary_search.py new file mode 100644 index 00000000..b03237a8 --- /dev/null +++ b/Python/binary_search.py @@ -0,0 +1,39 @@ +# Python 3 program for recursive binary search. +# Modifications needed for the older Python 2 are found in comments. + +# Returns index of x in arr if present, else -1 +def binary_search(arr, low, high, x): + + # Check base case + 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 = [ 2, 3, 4, 10, 40 ] +x = 10 + +# Function call +result = binary_search(arr, 0, len(arr)-1, x) + +if result != -1: + print("Element is present at index", str(result)) +else: + print("Element is not present in array")