Linear Search
Binary Search
Ternary Search
Jump Search
Interpolation Search
Exponential Search
Fibonacci Search
Ubiquitous Binary Search
Meta Binary Search
Sparse Table Search
Bubble Sort
Optimized Bubble Sort
Selection Sort
Insertion Sort
Shell Sort
Merge Sort (Top-down)
Merge Sort (Bottom-up)
Quick Sort (Lomuto)
Quick Sort (Hoare)
Randomized Quick Sort
3-Way Quick Sort
Heap Sort
Counting Sort
Radix Sort (LSD)
Radix Sort (MSD)
Bucket Sort
Pigeonhole Sort
Cycle Sort
Cocktail Shaker Sort
Gnome Sort
Comb Sort
Bitonic Sort
Odd-Even Sort
Strand Sort
TimSort
Block Sort
Flash Sort
Stack Push/Pop
Queue Enqueue/Dequeue
Circular Queue Operations
Deque Operations
Priority Queue Operations
Singly Linked List Insert/Delete/Traverse
Doubly Linked List Insert/Delete/Traverse
Circular Linked List Insert/Delete/Traverse
Skip List Search/Insert/Delete
Self-adjusting List (Move-to-Front)
Union-Find (Disjoint Set)
Union by Rank
Path Compression in Union-Find
Separate Chaining Hash Table
Linear Probing
Quadratic Probing
Double Hashing
Robin Hood Hashing
Cuckoo Hashing
Perfect Hashing
Dynamic Hashing
Extendible Hashing
Breadth-First Search (BFS)
Depth-First Search (DFS) Recursive
DFS Iterative
Iterative Deepening DFS
Bidirectional Search
Uniform Cost Search
Dijkstra’s Algorithm
Bellman–Ford Algorithm
Floyd–Warshall Algorithm
Johnson’s Algorithm
A* Search Algorithm
Greedy Best-First Search
Bidirectional Dijkstra
ALT Algorithm (A*, Landmarks, Triangle inequality)
Prim’s Algorithm
Kruskal’s Algorithm
Borůvka’s Algorithm
#8. Graph Flow Algorithms Ford–Fulkerson Method
Edmonds–Karp Algorithm
Dinic’s Algorithm
Push–Relabel Algorithm
Capacity Scaling Algorithm
Minimum-Cost Maximum Flow
Tarjan’s Strongly Connected Components Algorithm
Kosaraju’s Algorithm
Gabow’s Algorithm
Bridge Finding Algorithm
Articulation Points Algorithm
Hierholzer’s Algorithm (Eulerian Path/Circuit)
Hamiltonian Path Finder (Backtracking)
Held–Karp Algorithm (Hamiltonian Cycle)
Tree Traversal (Preorder, Inorder, Postorder)
Level Order Traversal
Morris Traversal
Lowest Common Ancestor (Binary Lifting)
Lowest Common Ancestor (Euler Tour + RMQ)
AVL Tree Rotations (LL, RR, LR, RL)
Red-Black Tree Insert/Delete
Splay Tree Operations
B-Tree Insert/Delete/Search
B+ Tree Operations
Segment Tree Build/Query/Update
Fenwick Tree (Binary Indexed Tree)
Treap Operations
Cartesian Tree Build
Naive String Matching
Knuth–Morris–Pratt (KMP) Algorithm
Rabin–Karp Algorithm
Z-Algorithm
Boyer–Moore Algorithm
Aho–Corasick Algorithm
Finite Automata Based Search
Shift-Or/Shift-And Algorithm
Suffix Array Construction (Naive)
Suffix Array (Prefix Doubling)
Suffix Tree Construction (Ukkonen’s Algorithm)
Longest Common Prefix (Kasai’s Algorithm)
Longest Common Subsequence (DP)
Longest Common Substring (DP)
Edit Distance (Levenshtein Distance)
Damerau–Levenshtein Distance
Manacher’s Algorithm (Longest Palindromic Substring)
Palindrome Partitioning
Rolling Hash
Fibonacci (Top-down)
Fibonacci (Bottom-up)
0/1 Knapsack Problem
Unbounded Knapsack Problem
Coin Change (Min Coins)
Coin Change (Number of Ways)
Longest Increasing Subsequence (O(n^2))
Longest Increasing Subsequence (O(n log n))
Matrix Chain Multiplication
Egg Dropping Puzzle
Rod Cutting Problem
Minimum Cost Path
Partition Equal Subset Sum
Palindromic Subsequence Count
Optimal Binary Search Tree
Wildcard Matching
Word Break Problem
Catalan Number Computation
Euclidean Algorithm (GCD)
Extended Euclidean Algorithm
Least Common Multiple (LCM)
Modular Exponentiation (Binary Exponentiation)
Modular Inverse (Extended Euclid)
Modular Inverse (Fermat’s Little Theorem)
Sieve of Eratosthenes
Sieve of Atkin
Miller–Rabin Primality Test
Fermat Primality Test
Pollard’s Rho Algorithm
Chinese Remainder Theorem
Binary GCD Algorithm
Karatsuba Multiplication
Strassen Matrix Multiplication
Gauss–Jordan Elimination
Gaussian Elimination
Graham’s Scan (Convex Hull)
Jarvis March (Convex Hull)
Andrew’s Monotone Chain (Convex Hull)
Rotating Calipers
Closest Pair of Points (Divide and Conquer)
Line Segment Intersection (Sweep Line)
Bentley–Ottmann Algorithm
Point in Polygon (Ray Casting)
Point in Polygon (Winding Number)
Voronoi Diagram (Fortune’s Algorithm)
Delaunay Triangulation
Polygon Triangulation (Ear Clipping)
Caesar Cipher
Vigenère Cipher
Playfair Cipher
Hill Cipher
RSA Encryption/Decryption
Diffie–Hellman Key Exchange
ElGamal Encryption
Elliptic Curve Cryptography (ECC) Basics
Digital Signature Algorithm (DSA)
SHA-1 Hash Function
SHA-256 Hash Function
MD5 Hash Function
AES Encryption (Rijndael)
DES Encryption
Triple DES Encryption
Blowfish Encryption
Twofish Encryption
ChaCha20 Stream Cipher
Salsa20 Stream Cipher
Run-Length Encoding (RLE)
Huffman Coding
Adaptive Huffman Coding
Arithmetic Coding
Lempel–Ziv–Welch (LZW)
LZ77
LZ78
Burrows–Wheeler Transform
Move-to-Front Transform
K-Means Clustering
K-Medoids Clustering
Hierarchical Clustering (Agglomerative)
Hierarchical Clustering (Divisive)
DBSCAN
Linear Regression
Logistic Regression
Naive Bayes Classifier
K-Nearest Neighbors (KNN)
Decision Tree Learning
Random Forests
Support Vector Machines (SVM)
Gradient Descent (Batch)
Gradient Descent (Stochastic)
Perceptron Learning Algorithm
Multi-Layer Perceptron (Backpropagation)
Minimax Algorithm
Minimax with Alpha–Beta Pruning
Negamax Algorithm
Iterative Deepening Minimax
Expectimax Algorithm
Monte Carlo Tree Search (MCTS)
Proof-Number Search
Killer Move Heuristic
Principal Variation Search
Null Move Pruning
First Come First Serve (FCFS) Scheduling
Shortest Job First (SJF) Scheduling
Shortest Remaining Time First (SRTF) Scheduling
Round Robin Scheduling
Priority Scheduling (Non-preemptive)
Priority Scheduling (Preemptive)
Multilevel Queue Scheduling
Multilevel Feedback Queue Scheduling
Lottery Scheduling
Fair Share Scheduling
Earliest Deadline First (EDF) Scheduling
Rate Monotonic Scheduling (RMS)
Least Laxity First Scheduling
Parallel Prefix Sum (Scan)
Parallel Matrix Multiplication
Parallel Merge Sort
Parallel Quick Sort
Parallel BFS
Parallel DFS
Parallel Floyd–Warshall
Parallel Dijkstra’s Algorithm
Parallel PageRank Computation
Work–Stealing Scheduling
Bully Election Algorithm
Ring Election Algorithm
Chandy–Lamport Snapshot Algorithm
Ricart–Agrawala Mutual Exclusion Algorithm
Lamport Timestamps
Vector Clocks
Paxos Consensus Algorithm
Raft Consensus Algorithm
Gossip Protocol
Two-Phase Commit Protocol
Three-Phase Commit Protocol
Byzantine Fault Tolerance Algorithm
Transitive Closure (Floyd–Warshall variant)
Suurballe’s Algorithm (Disjoint Paths)
Yen’s K-Shortest Paths Algorithm
Johnson’s All-Pairs Shortest Paths
Karger’s Min Cut Algorithm
Stoer–Wagner Min Cut Algorithm
Edmonds’ Blossom Algorithm (Maximum Matching)
Hopcroft–Karp Algorithm (Bipartite Matching)
Kuhn’s Algorithm (Hungarian Algorithm for Matching)
Hungarian Algorithm for Assignment Problem
Bron–Kerbosch Clique Finding Algorithm
Clique Percolation Method
Bitmask Dynamic Programming
Digit Dynamic Programming
DP on Trees (Subtree DP)
DP on Graphs (Shortest Path Count)
Divide and Conquer Optimization DP
Knuth Optimization DP
Convex Hull Trick Optimization DP
Slope Trick DP
DP with SOS (Sum Over Subsets)
DP with Meet-in-the-Middle
Tonelli–Shanks Algorithm (Square Root Modulo Prime)
Baby-Step Giant-Step Discrete Logarithm
Pollard’s Kangaroo Algorithm
Lucas–Lehmer Primality Test
AKS Primality Test
Montgomery Multiplication
Cipolla’s Algorithm (Square Root Mod p)
Wilson’s Theorem for Primality Check
Modular Factorial Computation
Mobius Function Computation
Euler’s Totient Function Computation
Inclusion–Exclusion Principle Algorithm
Chinese Remainder with Garner’s Algorithm
Arithmetic Coding (Static)
Arithmetic Coding (Adaptive)
LZSS Compression
LZR (Lempel–Ziv–Ross Williams)
PAQ Family Compression Algorithm
Brotli Compression Algorithm
Zstandard Compression Algorithm
bzip2 Compression (BWT + Huffman)
Apriori Algorithm (Association Rules)
FP-Growth Algorithm
ECLAT Algorithm
k-Modes Clustering
k-Prototypes Clustering
Gaussian Mixture Model (EM Algorithm)
Mean Shift Clustering
OPTICS Clustering
Spectral Clustering
Affinity Propagation
Hidden Markov Model (Forward–Backward)
Viterbi Algorithm
Perceptron Learning Algorithm
Backpropagation Algorithm
Stochastic Gradient Descent with Momentum
Adam Optimizer
RMSProp Optimizer
Adagrad Optimizer
L-BFGS Optimizer
Xavier Initialization
He Initialization
Dropout Regularization Algorithm
Batch Normalization Algorithm
Needleman–Wunsch Sequence Alignment
Smith–Waterman Local Sequence Alignment
BLAST Search Algorithm
FASTA Search Algorithm
De Bruijn Graph for Genome Assembly
Overlap–Layout–Consensus Assembly Algorithm
Burrows–Wheeler Aligner (BWA)
Bowtie Aligner
MAFFT Multiple Sequence Alignment
ClustalW Multiple Sequence Alignment
#31. Computational Geometry Advanced Chan’s Algorithm (Convex Hull)
QuickHull Algorithm
Kirkpatrick–Seidel Algorithm
Minimum Enclosing Circle (Welzl’s Algorithm)
Smallest Enclosing Rectangle Algorithm
KD-Tree Nearest Neighbor Search
Range Tree Search
R-Tree Spatial Indexing
QuadTree Spatial Partitioning
BSP Tree Partitioning
Voronoi Diagram Lloyd’s Relaxation
Merkle–Damgård Construction
HMAC (Hash-Based Message Authentication Code)
PBKDF2 Key Derivation
Scrypt Key Derivation
Argon2 Key Derivation
Shamir’s Secret Sharing
Threshold Cryptography Algorithm
Blind Signature Protocol
Zero-Knowledge Proof (Schnorr Protocol)
Fiat–Shamir Identification Scheme
Oblivious Transfer Protocol
Reservoir Sampling
Randomized Quick Sort
Randomized Prim’s Algorithm
Randomized Kruskal’s Algorithm
Monte Carlo Integration
Las Vegas Algorithm (Randomized Search)
Bloom Filter Membership Test
Count–Min Sketch Algorithm
HyperLogLog Cardinality Estimation
Skip List Randomized Search
External Merge Sort
External Quick Sort
B-Tree Search (Disk Based)
Buffer Tree Algorithm
MapReduce Word Count
MapReduce Inverted Index
MapReduce PageRank
Streaming Median Algorithm
Reservoir Sampling in Streams
Misra–Gries Frequent Items Algorithm
Vertex Cover 2-Approximation
Set Cover Greedy Approximation
Traveling Salesman Problem (Christofides’ Algorithm)
Max Cut Randomized Approximation
Facility Location Greedy Approximation
Knapsack Fully Polynomial-Time Approximation Scheme (FPTAS)
LU Decomposition
Cholesky Decomposition
QR Decomposition (Gram–Schmidt)
QR Decomposition (Householder)
Singular Value Decomposition (SVD)
Eigenvalue Power Iteration
Lanczos Algorithm for Eigenvalues
Arnoldi Iteration
Conjugate Gradient Method
Simplex Method (Linear Programming)
Revised Simplex Method
Interior Point Method
Branch and Bound Algorithm
Branch and Cut Algorithm
Branch and Price Algorithm
Tabu Search
Simulated Annealing
Genetic Algorithm
Differential Evolution Algorithm
Particle Swarm Optimization
Ant Colony Optimization
Bee Colony Optimization
Harmony Search Algorithm
Firefly Algorithm
Cuckoo Search Algorithm
Whale Optimization Algorithm
Grey Wolf Optimizer