A well-designed algorithm tries to optimize the use of the available resources most efficiently by dividing the problem into smaller subproblems wherever possible. There are different algorithmic strategies for designing algorithms. An algorithmic strategy deals with the following three aspects of an algorithm list containing aspects of the missing algorithm.
We will present the following three strategies in this section:
The divide-and-conquer strategy
The dynamic programming strategy
The greedy algorithm strategy