⬅ Previous Topic
Two Pointers TechniqueNext Topic ⮕
Tree / Graph Traversal Technique in DSA⬅ Previous Topic
Two Pointers TechniqueNext Topic ⮕
Tree / Graph Traversal Technique in DSATopic Contents
The Binary Search technique is used to find the position of a target element in a sorted list or array. Instead of checking every element one by one (as in linear search), binary search efficiently cuts the search space in half at every step.
This makes it significantly faster with a time complexity of O(log n) compared to O(n) for linear search.
Binary search works by repeatedly dividing the search interval in half:
low = 0
and high = n - 1
.mid = (low + high) // 2
.arr[mid]
equals the target, return mid.arr[mid]
is greater than the target, search in the left half.arr[mid]
is less than the target, search in the right half.// Binary Search Pseudocode
function binarySearch(arr, target):
low = 0
high = arr.length - 1
while low <= high:
mid = Math.floor((low + high) / 2)
if arr[mid] == target:
return mid // Found
else if arr[mid] < target:
low = mid + 1 // Search right half
else:
high = mid - 1 // Search left half
return -1 // Not found
You are given a sorted array:
[10, 20, 30, 40, 50, 60, 70, 80]
Your task is to find the index of the number 60
using the Binary Search technique.
low = 0
and high = length - 1
.mid = (low + high) // 2
.arr[mid]
:Step | low | high | mid | arr[mid] | Action |
---|---|---|---|---|---|
1 | 0 | 7 | (0+7)//2 = 3 | 40 | 40 < 60 → search in right half |
2 | 4 | 7 | (4+7)//2 = 5 | 60 | Found target at index 5 |
Target 60 found at index 5.
O(log n) – because we halve the search space each time.
O(1) – we use only a few variables regardless of input size, and these are going to be constant irrespective of the array size.
Binary Search is one of the most powerful and widely-used techniques in DSA. It's not just used for finding elements in arrays, but also as a strategic tool to reduce time complexity in problems involving ranges, monotonic functions, and optimization tasks.
⬅ Previous Topic
Two Pointers TechniqueNext Topic ⮕
Tree / Graph Traversal Technique in DSAYou can support this website with a contribution of your choice.
When making a contribution, mention your name, and programguru.org in the message. Your name shall be displayed in the sponsors list.