The Little Book of Algorithms
Version 0.3.9
Content
A Friendly Guide from Numbers to Neural Networks
- Download PDF - print-ready
- Download EPUB - e-reader friendly
- View LaTex -
.texsource - Source code (Github) - Markdown source
- Read on GitHub Pages - view online
Licensed under CC BY-NC-SA 4.0.
Chapter 1. Foundations of Algorithms
- What Is an Algorithm?
- What Is an Algorithm?
- Measuring Time and Space
- Measuring Time and Space
- Big-O, Big-Theta, Big-Omega
- Big-O, Big-Theta, Big-Omega
- Algorithmic Paradigms (Greedy, Divide and Conquer, DP)
- Algorithmic Paradigms (Greedy, Divide and Conquer, DP)
- Recurrence Relations
- Recurrence Relations
- Searching Basics
- Searching Basics
- Sorting Basics
- Sorting Basics
- Data Structures Overview
- Data Structures Overview
- Graphs and Trees Overview
- Graphs and Trees Overview
- Algorithm Design Patterns
Chapter 2. Sorting and Searching
- Elementary Sorting (Bubble, Insertion, Selection)
- Elementary Sorting (Bubble, Insertion, Selection)
- Divide-and-Conquer Sorting (Merge, Quick, Heap)
- Divide-and-Conquer Sorting (Merge, Quick, Heap)
- Counting and Distribution Sorts (Counting, Radix, Bucket)
- Counting and Distribution Sorts (Counting, Radix, Bucket)
- Hybrid Sorts (IntroSort, Timsort)
- Hybrid Sorts (IntroSort, Timsort)
- Special Sorts (Cycle, Gnome, Comb, Pancake)
- Special Sorts (Cycle, Gnome, Comb, Pancake)
- Linear and Binary Search
- Linear and Binary Search
- Interpolation and Exponential Search
- Interpolation and Exponential Search
- Selection Algorithms (Quickselect, Median of Medians)
- Selection Algorithms (Quickselect, Median of Medians)
- Range Searching and Nearest Neighbor
- Range Searching and Nearest Neighbor
- Search Optimizations and Variants
Chapter 3. Data Structures in Action
- Arrays, Linked Lists, Stacks, Queues
- Arrays, Linked Lists, Stacks, Queues
- Hash Tables and Variants (Cuckoo, Robin Hood, Consistent)
- Hash Tables and Variants (Cuckoo, Robin Hood, Consistent)
- Heaps (Binary, Fibonacci, Pairing)
- Heaps (Binary, Fibonacci, Pairing)
- Balanced Trees (AVL, Red-Black, Splay, Treap)
- Balanced Trees (AVL, Red-Black, Splay, Treap)
- Segment Trees and Fenwick Trees
- Segment Trees and Fenwick Trees
- Disjoint Set Union (Union-Find)
- Disjoint Set Union (Union-Find)
- Probabilistic Data Structures (Bloom, Count-Min, HyperLogLog)
- Probabilistic Data Structures (Bloom, Count-Min, HyperLogLog)
- Skip Lists and B-Trees
- Skip Lists and B-Trees
- Persistent and Functional Data Structures
- Persistent and Functional Data Structures
- Advanced Trees and Range Queries
Chapter 4. Graph Algorithms
- Traversals (DFS, BFS, Iterative Deepening)
- Traversals (DFS, BFS, Iterative Deepening)
- Strongly Connected Components (Tarjan, Kosaraju)
- Strongly Connected Components (Tarjan, Kosaraju)
- Shortest Paths (Dijkstra, Bellman-Ford, A*, Johnson)
- Shortest Paths (Dijkstra, Bellman-Ford, A*, Johnson)
- Shortest Path Variants (0–1 BFS, Bidirectional, Heuristic A*)
- Shortest Path Variants (0–1 BFS, Bidirectional, Heuristic A*)
- Minimum Spanning Trees (Kruskal, Prim, Borůvka)
- Minimum Spanning Trees (Kruskal, Prim, Borůvka)
- Flows (Ford–Fulkerson, Edmonds–Karp, Dinic)
- Flows (Ford–Fulkerson, Edmonds–Karp, Dinic)
- Cuts (Stoer–Wagner, Karger, Gomory–Hu)
- Cuts (Stoer–Wagner, Karger, Gomory–Hu)
- Matchings (Hopcroft–Karp, Hungarian, Blossom)
- Matchings (Hopcroft–Karp, Hungarian, Blossom)
- Tree Algorithms (LCA, HLD, Centroid Decomposition)
- Tree Algorithms (LCA, HLD, Centroid Decomposition)
- Advanced Graph Algorithms and Tricks
Chapter 5. Dynamic Programming
- DP Basics and State Transitions
- DP Basics and State Transitions
- Classic Problems (Knapsack, Subset Sum, Coin Change)
- Classic Problems (Knapsack, Subset Sum, Coin Change)
- Sequence Problems (LIS, LCS, Edit Distance)
- Sequence Problems (LIS, LCS, Edit Distance)
- Matrix and Chain Problems
- Matrix and Chain Problems
- Bitmask DP and Traveling Salesman
- Bitmask DP and Traveling Salesman
- Digit DP and SOS DP
- Digit DP and SOS DP
- DP Optimizations (Divide & Conquer, Convex Hull Trick, Knuth)
- DP Optimizations (Divide & Conquer, Convex Hull Trick, Knuth)
- Tree DP and Rerooting
- Tree DP and Rerooting
- DP Reconstruction and Traceback
- DP Reconstruction and Traceback
- Meta-DP and Optimization Templates
Chapter 6. Mathematics for Algorithms
- Number Theory (GCD, Modular Arithmetic, CRT)
- Number Theory (GCD, Modular Arithmetic, CRT)
- Primality and Factorization (Miller–Rabin, Pollard Rho)
- Primality and Factorization (Miller–Rabin, Pollard Rho)
- Combinatorics (Permutations, Combinations, Subsets)
- Combinatorics (Permutations, Combinations, Subsets)
- Probability and Randomized Algorithms
- Probability and Randomized Algorithms
- Sieve Methods and Modular Math
- Sieve Methods and Modular Math
- Linear Algebra (Gaussian Elimination, LU, SVD)
- Linear Algebra (Gaussian Elimination, LU, SVD)
- FFT and NTT (Fast Transforms)
- FFT and NTT (Fast Transforms)
- Numerical Methods (Newton, Simpson, Runge–Kutta)
- Numerical Methods (Newton, Simpson, Runge–Kutta)
- Mathematical Optimization (Simplex, Gradient, Convex)
- Mathematical Optimization (Simplex, Gradient, Convex)
- Algebraic Tricks and Transform Techniques
Chapter 7. Strings and Text Algorithms
- String Matching (KMP, Z, Rabin–Karp, Boyer–Moore)
- String Matching (KMP, Z, Rabin–Karp, Boyer–Moore)
- Multi-Pattern Search (Aho–Corasick)
- Multi-Pattern Search (Aho–Corasick)
- Suffix Structures (Suffix Array, Suffix Tree, LCP)
- Suffix Structures (Suffix Array, Suffix Tree, LCP)
- Palindromes and Periodicity (Manacher)
- Palindromes and Periodicity (Manacher)
- Edit Distance and Alignment
- Edit Distance and Alignment
- Compression (Huffman, Arithmetic, LZ77, BWT)
- Compression (Huffman, Arithmetic, LZ77, BWT)
- Cryptographic Hashes and Checksums
- Cryptographic Hashes and Checksums
- Approximate and Streaming Matching
- Approximate and Streaming Matching
- Bioinformatics Alignment (Needleman–Wunsch, Smith–Waterman)
- Bioinformatics Alignment (Needleman–Wunsch, Smith–Waterman)
- Text Indexing and Search Structures
Chapter 8. Geometry, Graphics, and Spatial Algorithms
- Convex Hull (Graham, Andrew, Chan)
- Convex Hull (Graham, Andrew, Chan)
- Closest Pair and Segment Intersection
- Closest Pair and Segment Intersection
- Line Sweep and Plane Sweep Algorithms
- Line Sweep and Plane Sweep Algorithms
- Delaunay and Voronoi Diagrams
- Delaunay and Voronoi Diagrams
- Point in Polygon and Polygon Triangulation
- Point in Polygon and Polygon Triangulation
- Spatial Data Structures (KD, R-tree)
- Spatial Data Structures (KD, R-tree)
- Rasterization and Scanline Techniques
- Rasterization and Scanline Techniques
- Computer Vision (Canny, Hough, SIFT)
- Computer Vision (Canny, Hough, SIFT)
- Pathfinding in Space (A*, RRT, PRM)
- Pathfinding in Space (A*, RRT, PRM)
- Computational Geometry Variants and Applications
Chapter 9. Systems, Databases, and Distributed Algorithms
- Concurrency Control (2PL, MVCC, OCC)
- Concurrency Control (2PL, MVCC, OCC)
- Logging, Recovery, and Commit Protocols
- Logging, Recovery, and Commit Protocols
- Scheduling (Round Robin, EDF, Rate-Monotonic)
- Scheduling (Round Robin, EDF, Rate-Monotonic)
- Caching and Replacement (LRU, LFU, CLOCK)
- Caching and Replacement (LRU, LFU, CLOCK)
- Networking (Routing, Congestion Control)
- Networking (Routing, Congestion Control)
- Distributed Consensus (Paxos, Raft, PBFT)
- Distributed Consensus (Paxos, Raft, PBFT)
- Load Balancing and Rate Limiting
- Load Balancing and Rate Limiting
- Search and Indexing (Inverted, BM25, WAND)
- Search and Indexing (Inverted, BM25, WAND)
- Compression and Encoding in Systems
- Compression and Encoding in Systems
- Fault Tolerance and Replication
Chapter 10. AI, ML, and Optimization
- Classical ML (k-means, Naive Bayes, SVM, Decision Trees)
- Classical ML (k-means, Naive Bayes, SVM, Decision Trees)
- Ensemble Methods (Bagging, Boosting, Random Forests)
- Ensemble Methods (Bagging, Boosting, Random Forests)
- Gradient Methods (SGD, Adam, RMSProp)
- Gradient Methods (SGD, Adam, RMSProp)
- Deep Learning (Backpropagation, Dropout, Normalization)
- Deep Learning (Backpropagation, Dropout, Normalization)
- Sequence Models (Viterbi, Beam Search, CTC)
- Sequence Models (Viterbi, Beam Search, CTC)
- Metaheuristics (GA, SA, PSO, ACO)
- Metaheuristics (GA, SA, PSO, ACO)
- Reinforcement Learning (Q-learning, Policy Gradients)
- Reinforcement Learning (Q-learning, Policy Gradients)
- Approximation and Online Algorithms
- Approximation and Online Algorithms
- Fairness, Causal Inference, and Robust Optimization
- Fairness, Causal Inference, and Robust Optimization
- AI Planning, Search, and Learning Systems