# Search algorithm

searchsearchingkeyword searchsearch spaceHeuristic searchsearch problemsearch problemssearch techniquessearching algorithmsadversarial search
In computer science, a search algorithm is any algorithm which solves the search problem, namely, to retrieve information stored within some data structure, or calculated in the search space of a problem domain, either with discrete or continuous values.wikipedia
250 Related Articles

### Binary search algorithm

binary searchbinarybinary chop
Binary, or half interval searches, repeatedly target the center of the search structure and divide the search space in half.
In computer science, binary search, also known as half-interval search, logarithmic search, or binary chop, is a search algorithm that finds the position of a target value within a sorted array.

### Constraint satisfaction

constraintsconstraintconstraint satisfaction problems
Such problems are usually solved via search, in particular a form of backtracking or local search.

### Algorithm

algorithmsalgorithm designcomputer algorithm
In computer science, a search algorithm is any algorithm which solves the search problem, namely, to retrieve information stored within some data structure, or calculated in the search space of a problem domain, either with discrete or continuous values.
Some example classes are search algorithms, sorting algorithms, merge algorithms, numerical algorithms, graph algorithms, string algorithms, computational geometric algorithms, combinatorial algorithms, medical algorithms, machine learning, cryptography, data compression algorithms and parsing techniques.

### Computational complexity

complexitycomputational burdenamount of computation
Algorithms are often evaluated by their computational complexity, or maximum theoretical run time.
In sorting and searching, the resource that is generally considered is the number of entries comparisons.

### Feasible region

candidate solutionfeasible setsearch space
In computer science, a search algorithm is any algorithm which solves the search problem, namely, to retrieve information stored within some data structure, or calculated in the search space of a problem domain, either with discrete or continuous values.
In optimization and other branches of mathematics, and in search algorithms (a topic in computer science), a candidate solution is a member of the set of possible solutions in the feasible region of a given problem.

### Combinatorial game theory

combinatorial gamecombinatorial gamescombinatorial
In CGT there has been less emphasis on refining practical search algorithms (such as the alpha–beta pruning heuristic included in most artificial intelligence textbooks), but more emphasis on descriptive theoretical results (such as measures of game complexity or proofs of optimal solution existence without necessarily specifying an algorithm, such as the strategy-stealing argument).

### Combinatorial optimization

combinatorial optimisationcombinatorial searchcombinatorial
The term combinatorial optimization is typically used when the goal is to find a sub-structure with a maximum (or minimum) value of some parameter.
Combinatorial optimization problems can be viewed as searching for the best element of some set of discrete items; therefore, in principle, any sort of search algorithm or metaheuristic can be used to solve them.

### Best-first search

best-firstBest firstGreedy best-first search
An important subclass are the local search methods, that view the elements of the search space as the vertices of a graph, with edges defined by a set of heuristics applicable to the case; and scan the space by moving from item to item along the edges, for example according to the steepest descent or best-first criterion, or in a stochastic search.
Best-first search is a search algorithm which explores a graph by expanding the most promising node chosen according to a specified rule.

### Heuristic (computer science)

heuristicheuristicsheuristic algorithm
Algorithms for these problems include the basic brute-force search (also called "naïve" or "uninformed" search), and a variety of heuristics that try to exploit partial knowledge about the structure of this space, such as linear relaxation, constraint generation, and constraint propagation.
A heuristic function, also called simply a heuristic, is a function that ranks alternatives in search algorithms at each branching step based on available information to decide which branch to follow.

### Metaheuristic

metaheuristicsmeta-algorithmheuristics
This category includes a great variety of general metaheuristic methods, such as simulated annealing, tabu search, A-teams, and genetic programming, that combine arbitrary heuristics in specific ways.
In computer science and mathematical optimization, a metaheuristic is a higher-level procedure or heuristic designed to find, generate, or select a heuristic (partial search algorithm) that may provide a sufficiently good solution to an optimization problem, especially with incomplete or imperfect information or limited computation capacity.

### Constraint satisfaction problem

constraint solvingconstraint satisfactionconstraint satisfaction problems
Algorithms for searching virtual spaces are used in the constraint satisfaction problem, where the goal is to find a set of value assignments to certain variables that will satisfy specific mathematical equations and inequations / equalities.
Constraint satisfaction problems on finite domains are typically solved using a form of search.

### Decision tree pruning

pruningprunedPruning (decision trees)
Examples of the latter include the exhaustive methods such as depth-first search and breadth-first search, as well as various heuristic-based search tree pruning methods such as backtracking and branch and bound.
Pruning is a technique in machine learning and search algorithms that reduces the size of decision trees by removing sections of the tree that provide little power to classify instances.

### Alpha–beta pruning

alpha-beta pruningalpha-betaalpha-beta search
Examples of algorithms for this class are the minimax algorithm, alpha–beta pruning, * Informational search and the A* algorithm.
Alpha–beta pruning is a search algorithm that seeks to decrease the number of nodes that are evaluated by the minimax algorithm in its search tree.

### Linear search

sequential searchlinear scanSequential
Linear search algorithms check every record for the one associated with a target key in a linear fashion.

### Artificial intelligence

AIA.I.artificially intelligent
This kind of problem — combinatorial search — has been extensively studied in the context of artificial intelligence.
Simple exhaustive searches are rarely sufficient for most real-world problems: the search space (the number of places to search) quickly grows to astronomical numbers.

### Depth-first search

depth-firstdepth first searchDFS
Examples of the latter include the exhaustive methods such as depth-first search and breadth-first search, as well as various heuristic-based search tree pruning methods such as backtracking and branch and bound.

Examples of the latter include the exhaustive methods such as depth-first search and breadth-first search, as well as various heuristic-based search tree pruning methods such as backtracking and branch and bound.

### Combinatorial search

This kind of problem — combinatorial search — has been extensively studied in the context of artificial intelligence.

### A* search algorithm

A*A* algorithmA* search
Examples of algorithms for this class are the minimax algorithm, alpha–beta pruning, * Informational search and the A* algorithm.

### Dijkstra's algorithm

Dijkstra algorithmDijkstraShortest Path First
Examples include Dijkstra's algorithm, Kruskal's algorithm, the nearest neighbour algorithm, and Prim's algorithm.

### Computer science

computer scientistcomputer sciencescomputer scientists
In computer science, a search algorithm is any algorithm which solves the search problem, namely, to retrieve information stored within some data structure, or calculated in the search space of a problem domain, either with discrete or continuous values.

### Search problem

search
In computer science, a search algorithm is any algorithm which solves the search problem, namely, to retrieve information stored within some data structure, or calculated in the search space of a problem domain, either with discrete or continuous values.

### Problem domain

domainproblem spaceapplication domain
In computer science, a search algorithm is any algorithm which solves the search problem, namely, to retrieve information stored within some data structure, or calculated in the search space of a problem domain, either with discrete or continuous values.

### Continuous or discrete variable

continuous variablecontinuousdiscrete variable
In computer science, a search algorithm is any algorithm which solves the search problem, namely, to retrieve information stored within some data structure, or calculated in the search space of a problem domain, either with discrete or continuous values.

### Web search engine

search enginesearch enginesweb search
The classic search problems described above and web search are both problems in information retrieval, but are generally studied as separate subfields and are solved and evaluated differently.