|
| 1 | +### 1. **Linear & Sequential Search** |
| 2 | +- **Linear Search (Sequential Search)** |
| 3 | + - Checks each element one by one. |
| 4 | +- **Sentinel Linear Search** |
| 5 | + - Uses a sentinel value to reduce comparisons. |
| 6 | + |
| 7 | +### 2. **Divide & Conquer Search** |
| 8 | +- **Binary Search** |
| 9 | + - Efficient on sorted arrays (O(log n)). |
| 10 | +- **Ternary Search** |
| 11 | + - Divides array into three parts instead of two. |
| 12 | +- **Jump Search** |
| 13 | + - Jumps ahead by fixed steps, then does linear search. |
| 14 | +- **Exponential Search** |
| 15 | + - Finds range with exponential jumps, then does binary search. |
| 16 | +- **Interpolation Search** |
| 17 | + - Estimates position based on value distribution. |
| 18 | + |
| 19 | +### 3. **Tree-based Search** |
| 20 | +- **Binary Search Tree (BST) Search** |
| 21 | + - Search in a binary search tree. |
| 22 | +- **AVL Tree Search / Red-Black Tree Search** |
| 23 | + - Balanced BSTs for faster search. |
| 24 | +- **B-Tree / B+ Tree Search** |
| 25 | + - Used in databases and file systems. |
| 26 | +- **Trie (Prefix Tree) Search** |
| 27 | + - Efficient for searching words/prefixes. |
| 28 | + |
| 29 | +### 4. **Hash-based Search** |
| 30 | +- **Hash Table Search** |
| 31 | + - Uses hash functions for constant time lookups. |
| 32 | +- **Open Addressing (Linear/Quadratic Probing, Double Hashing)** |
| 33 | + - Methods for collision resolution. |
| 34 | +- **Separate Chaining** |
| 35 | + - Uses linked lists for collisions. |
| 36 | +- **Cuckoo Hashing** |
| 37 | + - Multiple hash functions to resolve collisions. |
| 38 | + |
| 39 | +### 5. **Probabilistic & Approximate Search** |
| 40 | +- **Bloom Filter** |
| 41 | + - Probabilistic; fast membership test with false positives. |
| 42 | +- **Counting Bloom Filter** |
| 43 | + - Supports deletion. |
| 44 | +- **Cuckoo Filter** |
| 45 | + - Similar to Bloom filters but supports deletion. |
| 46 | + |
| 47 | +### 6. **Graph-based Search Algorithms** |
| 48 | +- **Breadth-First Search (BFS)** |
| 49 | + - Explores neighbors first in unweighted graphs. |
| 50 | +- **Depth-First Search (DFS)** |
| 51 | + - Explores as far as possible along branches. |
| 52 | +- **A* Search** |
| 53 | + - Heuristic-based best-first search. |
| 54 | +- **Bidirectional Search** |
| 55 | + - Runs two simultaneous searches from source and target. |
| 56 | + |
| 57 | +### 7. **String Search Algorithms** |
| 58 | +- **Naive String Search** |
| 59 | +- **Knuth-Morris-Pratt (KMP)** |
| 60 | +- **Boyer-Moore** |
| 61 | +- **Rabin-Karp** |
0 commit comments