Searching Algorithms

How Binary Search Works

158
index 016 of 16 still possible15
  • Ruled out
  • Still possible
  • Checked now
  • Found
1/6

Looking for 158 in 16 sorted values, from 4 to 196.

Settings

More options
Is it in the array?
Gaps between values

Two to 64 numbers. Sorted ascending before the search runs.

Binary Search

  1. 1lo = 0; hi = n-1
  2. 2while lo <= hi:
  3. 3 mid = (lo + hi) / 2
  4. 4 if a[mid] == target: return mid
  5. 5 if a[mid] < target:
  6. 6 lo = mid + 1
  7. 7 else:
  8. 8 hi = mid - 1
  9. 9return NOT_FOUND

How the Six Compare

AlgorithmBestAverageWorstNeeds a sorted array
LinearO(1)O(n)O(n)No
BinaryO(1)O(log n)O(log n)Yes
TernaryO(1)O(log n)O(log n)Yes
JumpO(1)O(√n)O(√n)Yes
ExponentialO(1)O(log n)O(log n)Yes
InterpolationO(1)O(log log n)*O(n)Yes

Scroll the table sideways for the rest of the columns.

Interpolation search only reaches that average when the gaps between the values are even.