GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Algorithms
  • Searching Algorithms
  • AVINASH NETHALA
  • 4 years ago4 years ago
  • Previous: Set Operations in Python
  • Next: Python Dictionary and its operations

This view

  • Original page
  • New address

GeezerVison is showing www.programminginpython.com — Python program to implement Binary Search Algorithm

Hello everyone! Welcome back to programminginpython.com. Here in this post am going to show you how to implement a binary search algorithm in Python. In the previous post, I discussed the Linear Search Algorithm which is a very basic search algorithm here I will discuss Binary Search.

Binary Search as the name suggests binary, here the list is divided into halves and then searched in each half. One notable thing about this binary search is that the list should be sorted first before executing the algorithm. The list is divided into two halves by the index, find the mid element of the list and then start to mid-1 is one list and mid+1 to end is another list, check if the element is mid, greater than it, or less than it and return the appropriate position of the key element to be found.

Master the basics of data analysis in Python. Expand your skillset by learning scientific computing with numpy.

Take the course on Introduction to Python on DataCamp here https://bit.ly/datacamp-intro-to-python

https://www.youtube.com/watch?v=TpPi5TCSE5Q”]

You can also watch the video on YouTube here

Program on GitHub

Ad:
Learn Python Programming Masterclass – Enroll Now.
Udemy

Binary Search Algorithm – Code Visualization

Time Complexity

Best Case O(1)
Average Case O(log n)
Worst Case O(log n)

Program on GitHub

Algorithm

Given a list L of n elements with values or records L0, L1, …, Ln-1, sorted in ascending order, and given key/target value K, binary search is used to find the index of K in L

  1. Set a variable start to 0 and another variable end to n-1(size of the list)
  2. if start > end break the algorithm, as it works only on sorted lists
  3. calculate mid as (start + end)/2
  4. if the key element is
    1. equal to mid, the search is done, returns the position of mid
    2. greater than mid, set start to mid + 1 and repeat step 2
    3. less than mid, set end to mid - 1 and repeat step 2

Program

__author__ = 'Avinash'


def binary_sort(sorted_list, length, key):
    start = 0
    end = length-1
    while start <= end:
        mid = int((start + end)/2)
        if key == sorted_list[mid]:
            print("\nEntered number %d is present at position: %d" % (key, mid))
            return -1
        elif key < sorted_list[mid]:
            end = mid - 1
        elif key > sorted_list[mid]:
            start = mid + 1
    print("\nElement not found!")
    return -1

lst = []

size = int(input("Enter size of list: \t"))

for n in range(size):
    numbers = int(input("Enter any number: \t"))
    lst.append(numbers)

lst.sort()
print('\n\nThe list will be sorted, the sorted list is:', lst)

x = int(input("\nEnter the number to search: "))

binary_sort(lst, size, x)

Program on GitHub

Output

Binary Search Algorithm in Python

Feel free to look at some other algorithms here or some programs on lists here or have a look at all the programs on Python here.

Share this:

  • Click to share on X (Opens in new window) X
  • Click to share on Facebook (Opens in new window) Facebook
  • More
  • Click to print (Opens in new window) Print
  • Click to email a link to a friend (Opens in new window) Email
  • Click to share on LinkedIn (Opens in new window) LinkedIn
  • Click to share on Reddit (Opens in new window) Reddit
  • Click to share on WhatsApp (Opens in new window) WhatsApp

Online Python Compiler

Share this:

  • Click to share on X (Opens in new window) X
  • Click to share on Facebook (Opens in new window) Facebook
  • More
  • Click to print (Opens in new window) Print
  • Click to email a link to a friend (Opens in new window) Email
  • Click to share on LinkedIn (Opens in new window) LinkedIn
  • Click to share on Reddit (Opens in new window) Reddit
  • Click to share on WhatsApp (Opens in new window) WhatsApp

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Related Posts

Heap Sort Algorithm in Python

Heap Sort Algorithm in Python

AVINASH NETHALA4 years ago2 years ago 0
Bubble Sort algorithm in Python

Bubble Sort algorithm in Python

AVINASH NETHALA4 years ago4 years ago 0
Python program to implement Linear Search Algorithm

Python program to implement Linear Search Algorithm

AVINASH NETHALA5 years ago4 years ago 0
QuickSort Algorithm in Python

QuickSort Algorithm in Python

AVINASH NETHALA5 years ago4 years ago 0

Recent Posts

  • Python vs R: Which Language is Better for Data Science?
  • Top 7 Python Books You Must Read in 2025
  • Best Python Web Frameworks: Django, Flask, and FastAPI Breakdown
  • 20 Best Python One-Liners to Boost Your Coding Skills
  • Matplotlib Data Visualization in Python

Suggested Courses

  • Complete Python Developer: Zero to Mastery.
  • Automate the boring stuff.
  • Python and Django Full Stack Web Developer Bootcamp.
  • Artificial Intelligence and Machine Learning E-Degree.
  • Complete Python & Python OOP.

Subscribe to our newsletter!

Great Deals

Ads
  • Health and Beauty
  • Deals on Electronics
  • Toys and Games
  • Sports and Outdoors
  • Pet Supplies
  • Shoes
  • Movies and TV

Categories

  • Algorithms (8)
  • Artificial Intelligence AI (3)
  • Basic Programs (25)
  • Books (1)
  • Data Structures (10)
  • Databases (1)
  • Dictionaries (1)
  • Files Handling (1)
  • Letter Patterns (26)
  • Lists (7)
  • Machine Learning (3)
  • Math Programs (6)
  • Pattern Programming (31)
  • Promoted (1)
  • Python for Automation (1)
  • Python for Data Science (6)
  • Python for Ethical Hacking (2)
  • Python For Finance (4)
  • Python GUI (5)
  • Python Libraries (6)
  • Python OOP (1)
  • Python Resources (3)
  • Python Tips and Tricks (10)
  • Searching Algorithms (2)
  • Sets (1)
  • Sorting Algorithms (6)
  • Tuples (1)
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.