Divide and Conquer | Dynamic Programming | Greedy | Back Tracking | Branch & bound | Algorithm Design and Analyse