DEV Community

Nanduja Hari
Nanduja Hari

Posted on

Binary Search: Slice Your Search Time Like a Pro

So you’re tired of using for loops like a caveman to search arrays? Let’s upgrade your toolkit with Binary Search, the algorithm that slices your problem in half faster than your manager cuts scope during sprint planning.

🚀 What Is Binary Search?

Binary search is like being the Sherlock Holmes of sorted arrays. You don’t search every element. It is a divide-and-conquer algorithm used to find the position of a target value within a sorted array. If the element exists, it returns its index. If not, it returns -1 (aka the “Nope” index).

🧩 The Rules

  1. The array must be sorted. If it's not, sort it or risk total chaos.
  2. Recursion or iteration? Dealer’s choice.

✂️ How It Works (a.k.a. Divide & Conquer)

Let’s say you’re searching for target in a sorted array nums.

  1. Set two pointers: low = 0, high = nums.length - 1
  2. While low <= high:
    • Calculate mid = low + (high - low) / 2 (Why low + (high - low) / 2? Because if you just do (low + high) / 2, you risk integer overflow, which is like watching your app crash because of math. Sad.)
    • If nums[mid] == target, 🎉 boom — return mid
    • If nums[mid] < target, move low = mid + 1
    • If nums[mid] > target, move high = mid - 1
  3. If you reach here, return -1 (aka, not found 🙃)

🔧 Sample Code (in Java)

public int search(int[] nums, int target) {
    int low = 0, high = nums.length - 1;
    while (low <= high) {
        int mid = low + (high - low) / 2;
        if (nums[mid] == target) return mid;
        if (nums[mid] < target) low = mid + 1;
        else high = mid - 1;
    }
    return -1;
}
Enter fullscreen mode Exit fullscreen mode

🕵️‍♂️ Time Complexity: O(log n)
📦 Space Complexity: O(1)

💡 Real-Life Dev Use Cases

  • Searching in large sorted datasets (like a leaderboard)
  • Looking up elements in search engines or databases
  • Binary search trees (the cooler cousin)

🎯 Final Thoughts

Binary search is a classic for a reason. If you’re still brute-forcing searches in sorted data, stop it. Your CPU deserves better. Add this pattern to your brain cache and use it often — future you will thank you.

Top comments (0)