This concept is a narrowing of the generic algorithm concept in terms of strategies used in structuring the steps of the algorithm. Subconcepts include generic divide-and-conquer algorithms, generic dynamic programming algorithms, generic greedy algorithms, etc.