Category
page 1Search algorithms
hash function
type of function that maps data of arbitrary size to data of fixed size
genetic algorithm
competitive algorithm for searching a problem space
Dijkstra's algorithm
graph search algorithm
binary search algorithm
search algorithm in sorted lists that operates by decreasing the search space by half each pass
depth-first search
algorithm for traversing or searching tree or graph data structures
breadth-first search
algorithm for searching the nodes of a graph in order by their hop count from a starting node
search algorithm
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
Minimax
Minimax (sometimes Minmax, MM or saddle point) is a decision rule used in artificial intelligence, decision theory, combinatorial game theory, statistics, and philosophy for minimizing the possible loss for a worst case (maximum loss) scenario. When dealing with gains, it is referred to as "maximin" – to maximize the minimum gain. Originally formulated for several-player zero-sum game theory, covering both the cases where players take alternate moves and those where they make simultaneous moves, it has also been extended to more complex games and to general decision-making in the presence of u
linear search
search algorithm in unsorted lists
A* search algorithm
algorithm used for pathfinding and graph traversal
backtracking
Backtracking is a class of algorithms for finding solutions to some computational problems, notably constraint satisfaction or enumeration problems, that incrementally builds candidates to the solutions, and abandons a candidate ("backtracks") as soon as it determines that the candidate cannot possibly be completed to a valid solution.
Grover's algorithm
quantum unstructured search algorithm that finds with high probability the unique input to a black box function that produces a particular output value using 𝑂(𝑁) evaluations
k-nearest neighbors algorithm
classification algorithm
rainbow table
precomputed table for reversing cryptographic hash functions
brute-force search
computer problem-solving technique
disjoint-set data structure
data structure that keeps track of a set of elements partitioned into a number of disjoint (nonoverlapping) subsets
alpha–beta pruning
search algorithm that seeks to decrease the number of nodes that are evaluated by the minimax algorithm in its search tree
hill climbing
optimization algorithm
tabu search
search method used for mathematical optimization
Johnson's algorithm
algorithm to find shortest paths between all pairs of vertices in a sparse, edge-weighted (possibly negatively), directed graph; uses the Bellman–Ford algorithm to remove negative weights and Dijkstra’s algorithm on the rest
inverted index
specialized database index to accelerate full-text search
best-first search
algorithm
nearest neighbor search
(as a form of proximity search (metric space)) optimization problem of finding the point in a given set that is closest (or most similar) to a given point
search tree
data structure in tree form sorted for fast lookup
beam search
heuristic search algorithm
iterative deepening depth-first search
search strategy
bidirectional search
algorithm for finding shortest paths by simultaneously searching from the source and destination until both searches meet
interpolation search
Searching algorithm
D*
D* (pronounced "D star") is any one of the following three related incremental search algorithms:

ternary search tree
3-way tree data structure where every node's left subtree has keys less than the node's key, every middle subtree has keys equal to the node's key, and every right subtree has keys greater than the node's key
golden section search
technique for finding the maximum of a unimodal function by probing a sequence of points whose distances decrease in the golden ratio at each step
cuckoo hashing
hashing data structure with worst-case constant lookup time based on moving old keys to make room for new ones
linear probing
collision resolution scheme
God's algorithm
an algorithmthat produces a solution to a combinatorial puzzle with the fewest possible moves
Simplified Memory-Bounded A*
SMA* or Simplified Memory Bounded A* is a shortest path algorithm based on the A* algorithm. The main advantage of SMA* is that it uses a bounded memory, while the A* algorithm might need exponential memory. All other characteristics of SMA* are inherited from A*.
Fibonacci search technique
method of searching a sorted array
ternary search
technique in computer science for finding the minimum or maximum of a unimodal function
double hashing
collision resolution scheme
universal hashing
selection of a hash function at random from a family of hash functions with a certain mathematical property, guaranteeing a low number of collisions in expectation, even if the data is chosen by an adversary
state-space search
class of search algorithms
Locality-sensitive hashing
method of dimension reduction in which closer items have greater probability of being mapped to the same hash bucket
lexicographic breadth-first search
graph algorithm producing a vertex order consistent with BFS
Bayesian search theory
Method for finding lost objects
perfect hash function
set of hash functions generate no collisions
Spreading activation
how brains and associative networks search for information
Knuth's Algorithm X
Algorithm for exact cover problem
Dancing Links
a technique for reverting a deleted node from a circular doubly linked list

jump point search
search algorithm
fringe search
graph search algorithm
iterative deepening A*
heuristic pathfinding algorithm

anytime algorithm
algorithm that can return a valid solution to a problem even if interrupted
SSS*
SSS* is a search algorithm introduced by George Stockman in 1979. It conducts a state space search traversing a game tree in a best-first fashion similar to that of the A* search algorithm.
backjumping
In constraint programming and SAT solving, backjumping (also known as non-chronological backtracking or intelligent backtracking) is an enhancement for backtracking algorithms which reduces the search space. While backtracking always goes up one level in the search tree when all values for a variable have been tested, backjumping may go up more levels. In this article, a fixed order of evaluation of variables x_1,\ldots,x_n is used, but the same considerations apply to a dynamic order of evaluation.

Sudoku solving algorithm
algorithm used to complete a sudoku
query expansion
type of expansion
B*
In computer science, B* (pronounced "B star") is a best-first graph search algorithm that finds the least-cost path from a given initial node to any goal node (out of one or more possible goals). First published by Hans Berliner in 1979, it is related to the A* search algorithm.
exponential search
algorithm for searching sorted, infinite lists
Null-move heuristic
Rapidly exploring random tree
search algorithm
Siamese method
Mathematical process for constructing magic squares