Classes of Algorithms  Brute Force  Another name for brute force
is exhaustive search. In these algorithms you consider every
possible solution in the solution domain to find the optimal
solution. Depending on the type of problem that you are doing,
if you have n items to consider you will be either doing n!
searches (Permutations) or 2n searches (Combinations). Brute
force algorithms are simple to implement but computationally
intensive to run. They are reasonable solutions when n is small
but even for moderately large values of n the solutions become
too intensive to produce results in a reasonable time frame. One
advantage of the the brute force algorithms is that they give
the optimal solution.  Traveling Salesman Problem: A salesman
has to visit n cities. Going from any one city to another has a
certain cost - think cost of airline or railway ticket or gas
cost. Map a route that has the least cost that the salesman can
follow so that he visits each city exactly once and he returns
to the city that he sta