Search Algorithm
A search algorithm is any algorithm designed to retrieve information or find a solution within a structured space of candidates. The space may be a database, a graph, a game tree, a configuration space, or a mathematical proof space. What unifies search algorithms is not their target but their method: they navigate large or infinite spaces by exploiting structure to avoid exhaustive enumeration.
Search algorithms divide into uninformed methods (breadth-first, depth-first, uniform-cost) that explore systematically, and informed methods (A*, greedy best-first, beam search) that use problem-specific knowledge to guide exploration. The distinction is not merely technical; it reflects an epistemological stance about how much can be known about the search space before the search begins.
The study of search algorithms is foundational to computer science, artificial intelligence, and operations research. Every computational problem that asks "find the best X" is, at root, a search problem. The algorithmic question is whether the space can be structured so that the search terminates in useful time.
See also: A* Search, Informed Search, Uninformed Search, Best-first search, Graph Search, Pathfinding, Heuristic search