Back to DSA Topics
Searching Algorithms
Searching algorithms find elements in data structures. Linear search works on any structure, binary search requires sorted arrays.
Animated Visualization
Step 1 of 8
10
0
20
1
30
2
40
3
50
4
60
5
70
6
80
7
90
8
Binary Search: Array sorted [10...90], search for 50. Middle = index 4 (50)
javascript
← Scroll →
// Linear Search - O(n)function linearSearch(arr, target) { for (let i = 0; i < arr.length; i++) { if (arr[i] === target) { return i; } } return -1;}// Binary Search - O(log n) - Requires sorted arrayfunction binarySearch(arr, target) { let left = 0; let right = arr.length - 1; while (left <= right) { const mid = Math.floor((left + right) / 2); if (arr[mid] === target) { return mid; } else if (arr[mid] < target) { left = mid + 1; } else { right = mid - 1; } } return -1;}// Recursive Binary Searchfunction binarySearchRecursive(arr, target, left = 0, right = arr.length - 1) { if (left > right) return -1; const mid = Math.floor((left + right) / 2); if (arr[mid] === target) { return mid; } else if (arr[mid] < target) { return binarySearchRecursive(arr, target, mid + 1, right); } else { return binarySearchRecursive(arr, target, left, mid - 1); }}// Time Complexity:// Linear Search: O(n)// Binary Search: O(log n)// Space Complexity:// Linear Search: O(1)// Binary Search: O(1) iterative, O(log n) recursiveSwipe horizontally to view full code
Explanation
Searching algorithms find elements in data structures. Linear search checks each element sequentially (O(n)). Binary search divides the search space in half each time (O(log n)) but requires a sorted array.
Operations & Complexity
Linear SearchO(n)
Sequential search through array
Binary SearchO(log n)
Divide and conquer on sorted array
Ternary SearchO(log₃ n)
Divide into three parts
Interpolation SearchO(log log n)
Improved binary search for uniform data
Time Complexity
Linear SearchO(n)
Sequential search through array
Binary SearchO(log n)
Divide and conquer on sorted array
Ternary SearchO(log₃ n)
Divide into three parts
Interpolation SearchO(log log n)
Improved binary search for uniform data