<p><em>Taken from Wikipedia, the free encyclopedia:</em></p>

<p>In computer science, a search algorithm, broadly speaking,
is an algorithm that takes a problem as input and returns a
solution to the problem, usually after evaluating a number of
possible solutions. Most of the algorithms studied by computer
scientists that solve problems are kinds of search algorithms.
The set of all possible solutions to a problem is called the
search space.</p>

<p>Brute-force search or "naive"/uninformed search algorithms
use the simplest, most intuitive method of searching through
the search space, whereas informed search algorithms use
heuristics to apply knowledge about the structure of the
search space to try to reduce the amount of time spent searching.</p>
