- Algorithm Development
Guide to choosing an algorithm by its essential properties, finding program errors with well-built test sets, and optimizing a working program.
- Enumeration Problems
Covers arrangements, combinations, and permutations, the generation method with lexicographic order, and backtracking with branch and bound for enumerating configurations.
- Problem Solving Approaches
Overview of the main algorithmic problem-solving strategies (brute force, greedy, divide and conquer, dynamic programming, backtracking, and more) and when to apply each.