Python Program for Binary Search; Through this tutorial, we would love to show you how to implement a program to binary search in python.
Binary Search is applied on the sorted array or list of large size. It’s time complexity of O(log n) makes it very fast as compared to other sorting algorithms. To use binary search on a collection, the collection must first be sorted.
Python Program for Binary Search
- Python Program for Binary Search with Function
- Python program for binary search using recursion function
Algorithm of Binary Search
Implement binary search following the below steps:
- Start with the middle element of the given list:
- If the target value is equal to the middle element of the array, then return the index of the middle element.
- Otherwise, compare the middle element with the target value,
- If the target value is greater than the number in the middle index, then pick the elements to the right of the middle index, and start with Step 1.
- If the target value is less than the number in the middle index, then pick the elements to the left of the middle index, and start with Step 1.
- If a match is found, return the index of the element matched.
- Otherwise, return
-1
Python Program for Binary Search with Function
# Binary search function
def binarySearchAlgo(xlist, key):
a = 0
b = len(xlist)
while a < b:
c = (a + b)//2
if xlist[c] > key:
b = c
elif xlist[c] < key:
a = c + 1
else:
return c
return -1
# input a list of elements
xlist = input('Enter the sorted list of numbers: ')
#split a element
xlist = xlist.split()
xlist = [int(x) for x in xlist]
# search for in list
key = int(input('The number to search for: '))
# call binary search function
index = binarySearchAlgo(xlist, key)
if index < 0:
print('{} was not found.'.format(key))
else:
print('{} was found at index {}.'.format(key, index))
After executing the program, the output will be:
Enter the sorted list of numbers: 1 2 3 4 5 6 7 8 9 The number to search for: 8 8 was found at index 7.
Python program for binary search using recursion function
# Python code for recursive binary search
# Returns index of key in xlist 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, find in left sub array
elif arr[mid] > x:
return binarySearch(arr, l, mid-1, x)
# Otherwise find the element in right subarray
else:
return binarySearch(arr, mid+1, r, x)
else:
# Element is not present in the list
return -1
# input a list of elements
xlist = input('Enter the sorted list of numbers: ')
#split a element
xlist = xlist.split()
xlist = [int(x) for x in xlist]
# search for in list
key = int(input('The number to search for: '))
# Function call
result = binarySearch(xlist, 0, len(xlist)-1, key)
if result != -1:
print('{} was found at index {}.'.format(key, result))
else:
print('{} was not found.'.format(key))
After executing the program, the output will be:
Enter the sorted list of numbers: 1 2 3 4 5 6 7 8 The number to search for: 6 6 was found at index 5.
Recommended Python Programs
- Python Program to Find/Calculate Average of 3, 4, 5…n numbers
- Python Program to Print ASCII Value of Character
- Write a Program to Calculate Simple Interest in Python
- Python Program to Compute Compound Interest
- Leap Year Program in Python
- Python Program to Print Star Pattern
- Number Pattern Programs in Python
- Python Program to Print Even and Odd numbers From 1 to N
- Python Abs() Function: For Absolute Value
- How to Check Whether a Number is Fibonacci or Not in Python
- Python: Program to Find Power of Number
- Python Program to Find Largest/Maximum of n Numbers
- Python Program to Find The Net Bill Amount After Discount
- Python Program to Print Numbers From N to 1 and 1 to N
- Python Program to Print Numbers Divisible by 3, 5, 7
- Python Program to Print Prime Number 1 to N
- How to Find Square of Number in Python
- Python Program to Calculate Cube of Number
- Python Random Number Generator Code
- Python Program to Calculate n-th term of a Fibonacci Series
- Zip Zap Zoom Python Program
- Python: program to convert Celsius to Fahrenheit
- Python Program to Swap Two Numbers
- Python Program to Get Standard Deviation
- Python Program to Find the Variance
- Python Program to Convert Height in cm to Feet and Inches
- Python Program to Convert Meters into Yards, Yards into Meters
- Python Program to Convert Kilometers to Meters, Miles
- Python Program to Find Perfect Number
- Python: Program to Find Strong Number
- Python Program Create Basic Calculator
- Python Program For math.floor() Method
- Python Program to Find Sum of Series 1/1! 2/2! 3/3! …1/n!
- Python: Program to Convert Decimal to Binary, Octal and Hexadecimal
- Python Program to Find Roots of Quadratic Equation
- Python Program to Print Alphabets from A to Z in Uppercase and Lowercase
- Python Program to Check Given Input is Alphabet, Number or Special Character
- Python Program to Check IF a Number is Power of Another Number
- Python Check Binary Representation of Given Number is Palindrome or Not
- Python Program to Calculate the Area of a Rectangle
- Python Program to Calculate Area of Triangle
- Python Program to Print Binary Value of Numbers From 1 to N
- Python Program to Find Sum Of Even and Odd numbers From 1 to N
- Python Program to Calculate Simple and Compound Interest
- Python Program to Find Factors of a Number