Beginner Topic 7 of 51 Algorithms
Binary Search
Halving a sorted range repeatedly to locate a target.
How it works
Binary search finds a target in a sorted array by repeatedly comparing it with the middle element and discarding the half that cannot contain it. Each step halves the search range, so it takes O(log n) comparisons, about 20 for a million items. It works on any monotonic predicate, not just arrays, which enables searching on answers.
Where it is used
Dictionary lookups, finding insertion points, searching sorted database indexes, version bisection in debugging such as git bisect, and solving optimization problems by binary searching on the answer all use it.
Common pitfall
Off-by-one errors in the bounds and infinite loops from wrong midpoint updates are famous. Computing mid as (lo + hi) / 2 can overflow in fixed-width integers; use lo + (hi - lo) / 2. The data must be sorted, and duplicates require care about which index you return.
Where it fits in the course
Binary Search is topic 7 of 51 in Algorithms, rated Beginner. It follows Linear Search. The next topic is Bubble Sort.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Algorithms quiz.
- Explore the Linear vs Binary Search visualizer: See how halving beats scanning.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Algorithms quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Binary Search?
Where do people use Binary Search?
What is the most common mistake with Binary Search?
What should I learn before this topic?
How can I practice it?
Is Binary Search hard to learn?
How long does it take to learn Binary Search?
Which topics are related to Binary Search?
What should I study after Binary Search?
Related topics
- Linear Search (Algorithms)
- Bubble Sort (Algorithms)
- Big-O Notation (Algorithms)
- Selection Sort (Algorithms)
- Binary Search Trees (Data Structures)
- Binary Number System (Computer Architecture & Logic)
- Search Engines (Emerging & Frontier Topics)