Skip to main content

Command Palette

Search for a command to run...

About Binary Search in Simple Terms

Updated
2 min read
About Binary Search in Simple Terms
Y

I'm Yaroslav. I really love tech, especially Java, and all things related to technology.

But I'm not just about coding – I'm also into creating my own brand and sharing bits of my life's adventures. Oh, and I'm a book enthusiast too!

It’s a way to find specific value in a sorted array. It’s a lot faster that just looking through every single element one by one.

Difference between Linear and Binary Search

How does it work ?

  1. First, you pick the middle number of the list.

  2. If the number you're looking for is higher than the middle number, you know it's in the right half of the list. So you repeat the process on the right half of the list.

  3. If the number you're looking for is lower than the middle number, you know it's in the left half of the list. So you repeat the process on the left half of the list.

How to write code for that algorithm?

public int binarySearch(int[] array, int target) {

    // Initialize low and high pointers
    int low = 0;
    int high = array.length - 1;

 // Keep searching as long as low pointer is less than or equal to high pointer
    while (left <= right) {
        // Calculate middle index
        int mid = low + ( high - low) / 2;

        // Check if the middle element is equal to the target
        if (array[mid] == target) {
            return mid;
        }
         // If the middle element is less than the target, update low pointer to be one index to the high of the middle
        if (array[mid] < target) {
            low = mid + 1;
        // If the middle element is greater than the target, update high pointer to be one index to the low of the middle
        } else {
            high = mid - 1;
        }
    }
    return -1; // target not found
}

Code for Binary Search

Visualization of Binary Search

Visualization of Binary Search

More from this blog

Yaroslav's Blog

15 posts

I'm Yaroslav. I really love tech, especially Java, and all things related to technology. But I'm not just about coding – I'm also into creating my own brand and sharing bits of my life's adventures.