Algorithm design strategies such as divide and conquer, dynamic programming, greedy algorithms, backtracking, and branch-bound. The computational complexity of sorting and searching algorithms. Introduction to the theory of NP problems. Recurrence equations....