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