# 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.

### Breadth-first search

**breadth first searchbreadth-firstbreadth-first traversal**

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

**lookaheadlooking at least five moves ahead**

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**

### Problem domain

**domainproblem spaceapplication domain**

### Continuous or discrete variable

**continuous variablecontinuousdiscrete variable**

### 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.