Exponential Search Visualizer
Watch how Exponential Search finds the range exponentially, then performs binary search within that range.
Time: O(log n)
Space: O(1)
Requirement: Sorted Array
Exponential + Binary
Current Bound: 1 | Phase: EXPONENTIAL | Comparisons: 0
0
1
👆
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
10
12
11
14
12
16
13
18
14
20
15
22
16
24
17
26
18
28
19
30
Target: 18 | Step: 1 of 0
Current Step:
Click Start to begin Exponential Search visualization
Exponential Search
Time Complexity:O(log n)
Space Complexity:O(1)
Best For:Unbounded Arrays
Type:Hybrid
Color Legend
Exponential Phase Range
Currently Checking
Binary Search Range
Target Found
Not in Search Range
How It Works
- 1Start with bound = 1
- 2Double bound until element ≥ target
- 3Set range [bound/2, bound]
- 4Perform binary search in range
Python Implementation
def exponential_search(arr, target):
# If target is at first position
if arr[0] == target:
return 0
# Find range for binary search
bound = 1
while bound < len(arr) and arr[bound] < target:
bound *= 2
# Binary search in found range
left = bound // 2
right = min(bound, len(arr) - 1)
return binary_search(arr, target, left, right)
def binary_search(arr, target, left, right):
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1Real-world Applications
- • Searching in unbounded/infinite arrays
- • When array size is unknown
- • Searching in very large sorted datasets
- • Finding elements near the beginning
- • Memory-mapped file searching
- • Network packet searching