Skip to content

Commit fbc8fe0

Browse files
authored
Create searching.md
1 parent 0d1cb62 commit fbc8fe0

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

notes/searching.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
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

Comments
 (0)