Binary Search | Algorithm

Binary Search is one of the most popular searching algorithms. We use this to search specific elements on a sorted list. It doesn’t matter it’s ascending or descending. A binary search is not applicable on an unsorted list. It’s a fast and widely used algorithm.

In real life, you might already use this algorithm without knowing. By the way, let’s see a visual of how binary search work.

Steps for this algorithm are simple:

  • Find the mid point.
  • If mid is equal to the search value, then stop.
  • If search vaue is greater than the mid, then search on the right.
  • If search value is less than the mid, the search on the left.
  • Repeat

Let’s see how can we implement this algorithm using Python.

def bin_search(lst, value):
    
    begin = 0
    end = len(lst) - 1
    index = None
    
    while begin <= end:
        mid = (begin + end) // 2
        
        if value == lst[mid]:
            index = mid
            break
        elif value > lst[mid]:
            begin = mid + 1
        elif value < lst[mid]:
            end = mid - 1
            
    return index
    
arr = [1, 3, 5, 7, 10, 12]
res = bin_search(arr, 3)
print(res) # Result = 1

Binary search is much faster than linear search. The time complexity of this algorithm is O(log n).