PyDSAWHY Engine
Back to Roadmap
Track 05 of 10
AlgorithmsBeginner Level~25 Mins

5. Binary Search & Divide and Conquer

Reduce O(N) linear scans into lightning fast O(log N) search space halving.

The "WHY" Core Principle

Binary Search compares target with the middle element. If smaller, the entire right half is discarded instantly. 1,000,000 items are searched in just 20 checks!

Interactive Visualizer

Binary Search Stepper: O(log N) Search Space Halving

Observe how low, mid, and high pointers halve the search area every step.

Target:
low index:0
mid index:5
high index:10
Steps taken:0
LOW
2i=0
5i=1
8i=2
12i=3
16i=4
MID
23i=5
38i=6
45i=7
56i=8
72i=9
HIGH
91i=10

Interactive Code Snippets (1 Lessons)

Lesson 01

Classic Binary Search Algorithm

O(log N)O(1)

Implement Binary Search on a sorted array returning the target index in O(log N) time.

WHY Under The Hood:

At each step, `mid = (low + high) // 2`. If `arr[mid] == target`, we return. If `arr[mid] < target`, we shift `low = mid + 1` eliminating the left sub-array.

CPython C Struct Detail: Python integer division `//` in CPython evaluates `PyLong_FloorDiv`.

Classic Binary Search Algorithm

Pyodide WASM Engine

Type, edit code, and click 'Run & Profile' to see live runtime ms and operation count!

Python 3.12 Code (Editable)
Expected:Time: O(log N)Space: O(1)

Test Your Understanding

WHY can Binary Search NOT be performed on an unsorted array?