downloadhere.co

Binary Search

Recursive : 

Compare x with the middle element. 
If x matches with the middle element, we return the mid index.
Else if x is greater than the mid element, then x can only lie in the right (greater) half subarray after the mid element.
Then we apply the algorithm again for the right half. Else if x is smaller, the target x must lie in the left (lower) half. So we apply the algorithm for the left half.

# 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")

 

Iterative:

# Iterative Binary Search Function

# It returns index of x in given array arr if present,

# else returns -1

def binary_search(arr, x):

    low = 0

    high = len(arr) - 1

    mid = 0

    while low <= high:

        mid = (high + low) // 2

        # If x is greater, ignore left half

        if arr[mid] < x:

            low = mid + 1

        # If x is smaller, ignore right half

        elif arr[mid] > x:

            high = mid - 1

        # means x is present at mid

        else:

            return mid

    # If we reach here, then the element was not present

    return -1

# Test array

arr = [ 2, 3, 4, 10, 40 ]

x = 10

# Function call

result = binary_search(arr, x)

if result != -1:

    print("Element is present at index", str(result))

else:

    print("Element is not present in array")

 

 

Frequently asked questions

For anything else (licensing, billing, etc), please visit our Help Center.

If you need help with the product, contact us via email to ryan@downloadhere.co. For anything else (licensing, billing, etc), please visit our Help Center (Help Center will enable only when you are logged in 😉).
PC: To extract a single file or folder, double-click the compressed folder to open it. Then, drag the file or folder from the compressed folder to a new location. To extract the entire contents of the compressed folder, right-click the folder, click Extract All, and then follow the instructions. Mac: Double click the .zip file, then search for the product folder or product file. If you continue to have trouble, check out this help file for more tips.

Exclusive Icons & Illustrations

Checkout our latest themes, templates and illustrations.