Algorithm Design Paradigms¶
A design paradigm is a reusable way to expose structure in a problem.
| Paradigm | Central question |
|---|---|
| Divide and conquer | Can independent smaller instances be combined? |
| Greedy | Can one locally optimal safe choice be committed now? |
| Dynamic programming | Which overlapping subproblems determine the optimum? |
| Backtracking | Can invalid partial solutions be abandoned early? |
| Randomized | Can randomness simplify behavior or improve expected cost? |
Choosing a paradigm does not prove correctness. Greedy algorithms need a structural argument, dynamic programs need a correct recurrence and dependency order, and backtracking needs complete coverage of the search space.