Algorithms
Algorithm practice sharpens decomposition, complexity analysis, and implementation discipline. It does not replace production engineering: system design, testing, Git, dependency management, deployment, and interface work still decide whether software survives contact with users.
This track is organized by pattern, not by problem number. The current practice corpus lives in the Python solutions series; pattern-grouped lessons (trees, graphs, heaps, dynamic programming, greedy, backtracking) are planned next.
Planned lessons (27)
Wave 2 — breadth (provisional roadmap) — 27 lessons
analysis
- Big-O Beyond the Basics Growth rates, constants, and the analysis of real code rather than toy loops.
- Amortized Analysis Why appends are cheap on average: paying for work over time.
patterns
- Two Pointers Converging indices on sorted or paired structure.
- Sliding Window Subarray and substring problems without re-scanning.
- Hash Map Patterns Trading space for time: complements, frequencies, and indices.
- Prefix Sums Range queries in constant time after linear prep.
- Binary Search and Its Variants First-true boundaries, not just finding a value.
- Recursion and the Call Stack Base cases, stack frames, and converting to iteration.
- Divide and Conquer Splitting problems until they're trivial, then merging answers.
- Backtracking Building candidates and undoing mistakes.
- Stack and Queue Patterns Matching, nesting, and processing order as algorithmic tools.
- Linked List Patterns Fast and slow pointers, reversal, and in-place surgery.
- Interval Problems Sorting by start, sweeping, and merging.
structure-internals
- Sorting Internals Quicksort, mergesort, and why the standard library wins.
trees-graphs
- Tree Traversals Preorder, inorder, postorder, and level order — and when each matters.
- Binary Search Trees Ordered structure, in-order facts, and the cost of imbalance.
- Heaps and Priority Queues The top-k structure behind schedulers and Dijkstra.
- Tries Prefix trees for strings and autocomplete.
- Graph Representations Adjacency lists, matrices, and choosing by operation.
- BFS and DFS The two ways to walk a graph, and what each discovers.
- Topological Sort Ordering dependencies, from build systems to course schedules.
- Dijkstra and Shortest Paths Weighted shortest paths with a priority queue.
- Union-Find Disjoint sets, near-constant merges, and connectivity in bulk.
dynamic-programming
- Dynamic Programming: The Idea Overlapping subproblems and optimal substructure, recognized on sight.
- One-Dimensional DP Fibonacci to house robber: state, transition, order.
- Two-Dimensional and String DP Edit distance, LCS, and grid paths.
- Greedy Algorithms When local choices are globally safe: exchange arguments.