Block Search Visualizer
Watch how Block Search divides the array into blocks and performs linear search within the appropriate block.
Time: O(√n)
Space: O(1)
Requirement: Sorted Array
Block + Linear
Block Size: √16 = 4 | Phase: SETUP | Comparisons: 0
0
1
START
1
3
2
5
3
7
4
9
5
11
6
13
7
15
8
17
9
19
10
21
11
23
12
25
13
27
14
29
15
31
Target: 13 | Step: 1 of 0
Current Step:
Click Start to begin Block Search visualization
Block Search
Time Complexity:O(√n)
Space Complexity:O(1)
Block Size:√n
Type:Hybrid
Color Legend
Currently Checking
Current Block
Target Found
Not in Current Block
vs Jump Search
Block Search:Fixed block size
Jump Search:Variable jump size
Both:O(√n) complexity
Block search is conceptually simpler and easier to implement than jump search.
How It Works
- 1Divide array into blocks of size √n
- 2Find block containing the target
- 3Perform linear search within block
- 4Return index if found, -1 otherwise
Python Implementation
import math
def block_search(arr, target):
n = len(arr)
block_size = int(math.sqrt(n))
block_start = 0
# Find the appropriate block
while block_start < n:
block_end = min(block_start + block_size - 1, n - 1)
if arr[block_end] >= target:
# Linear search within the block
for i in range(block_start, block_end + 1):
if arr[i] == target:
return i
elif arr[i] > target:
return -1
return -1
block_start += block_size
return -1Real-world Applications
- • Simple alternative to jump search
- • Educational purposes for algorithm study
- • Memory block organization
- • File system block searching
- • Cache-friendly data structure searches
- • When simplicity over optimization matters