mirror of
https://github.com/c0de-archive/hacktoberfest-2018.git
synced 2024-12-22 13:22:39 +00:00
Create binary_search.py
This commit is contained in:
parent
4da95e9a22
commit
48e5c2a5d5
40
code/binary_search.py
Normal file
40
code/binary_search.py
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
|
||||||
|
# Python Program for recursive binary search.
|
||||||
|
|
||||||
|
# Returns index of x in arr if present, else -1
|
||||||
|
def binarySearch (arr, l, r, x):
|
||||||
|
|
||||||
|
# Check base case
|
||||||
|
if r >= l:
|
||||||
|
|
||||||
|
mid = l + (r - l)/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 binarySearch(arr, l, mid-1, x)
|
||||||
|
|
||||||
|
# Else the element can only be present
|
||||||
|
# in right subarray
|
||||||
|
else:
|
||||||
|
return binarySearch(arr, mid+1, r, x)
|
||||||
|
|
||||||
|
else:
|
||||||
|
# Element is not present in the array
|
||||||
|
return -1
|
||||||
|
|
||||||
|
# Test array
|
||||||
|
arr = [ 2, 3, 4, 10, 40 ]
|
||||||
|
x = 10
|
||||||
|
|
||||||
|
# Function call
|
||||||
|
result = binarySearch(arr, 0, len(arr)-1, x)
|
||||||
|
|
||||||
|
if result != -1:
|
||||||
|
print "Element is present at index %d" % result
|
||||||
|
else:
|
||||||
|
print "Element is not present in array"
|
Loading…
Reference in New Issue
Block a user