Logo Data Structures and Algorithms with Object-Oriented Design Patterns in C++
next up previous contents index

Algorithmic Patterns and Problem Solvers


This chapter presents a number of different algorithmic patterns. Each pattern addresses a category of problems and describes a core solution strategy for that category. Given a problem to be solved, we may find that there are several possible solution strategies. We may also find that only one strategy applies or even that none of them do. A good programmer is one who is proficient at examining the problem to be solved and identifying the appropriate algorithmic technique to use. The following algorithmic patterns are discussed in this chapter:

direct solution strategies
Brute force algorithms and greedy algorithms.
backtracking strategies
Simple backtracking and branch-and-bound algorithms.
top-down solution strategies
Divide-and-conquer algorithms.
bottom-up solution strategies
Dynamic programming.
randomized strategies
Monte Carlo algorithms and simulated annealing.

next up previous contents index

Bruno Copyright © 1997 by Bruno R. Preiss, P.Eng. All rights reserved.