Algorithm Design Techniques. 2 Brute Force Greedy Algorithms Divide and Conquer Dynamic Programming Backtracking Genetic Algorithms.