Category
page 1Graph algorithms
Dijkstra's algorithm
graph search algorithm
PageRank
thumb|upright=1.35|An animation of the PageRank algorithm running on a small network of pages. The size of the nodes represents the perceived importance of the page, and arrows represent hyperlinks.
thumb|upright=1.35|A simple illustration of the Pagerank algorithm. The percentage shows the perceived importance, and the arrows represent hyperlinks.
PageRank (PR) is an algorithm used by Google Search to rank web pages in their search engine results. It is named after both the term "web page" and co-founder Larry Page. PageRank is a way of measuring the importance of website pages. According to
depth-first search
algorithm for traversing or searching tree or graph data structures
travelling salesperson problem
NP-hard problem in combinatorial optimization
breadth-first search
algorithm for searching the nodes of a graph in order by their hop count from a starting node
knight's tour
sequence of moves of a knight on a chessboard to visit each square exactly once
Prim's algorithm
algorithm for finding the minimum spanning tree for weighted undirected graphs
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
A* search algorithm
algorithm used for pathfinding and graph traversal
Kruskal's algorithm
minimum spanning forest algorithm that greedily adds edges
Bellman–Ford algorithm
algorithm for finding single-source shortest paths in graphs, allowing some edge weights to be negative
graph isomorphism
bijection between the vertex set of two graphs
Floyd–Warshall algorithm
algorithm for finding all-pairs shortest paths in graphs, allowing some edge weights to be negative
topological sorting
an ordering of the vertices of the directed graph for which each edge is directed from earlier to later in the ordering
Ford–Fulkerson algorithm
algorithm
alpha–beta pruning
search algorithm that seeks to decrease the number of nodes that are evaluated by the minimax algorithm in its search tree
tree traversal
class of algorithms
Borůvka's algorithm
algorithm for finding minimum spanning trees by repeatedly finding the shortest edge out of each subtree in a forest and adding all such edges to the forest
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
Edmonds–Karp algorithm
algorithm
Christofides algorithm
algorithm that approximates solutions to the travellng salesman problem on a metric space, guaranteeing that its solutions will be within 1½ of the optimal solution length; discovered by Nicos Christofides in 1976
transitive closure
operation on binary relations
Dinic's algorithm
algorithm for computing the maximal flow of a network
nearest neighbour algorithm
used to determine solution to travelling salesman problem
longest path problem
the problem of finding a simple path of maximum length in a given graph
iterative deepening depth-first search
search strategy

centrality
In graph theory and network analysis, indicators of centrality assign numbers or rankings to nodes within a graph corresponding to their network position. Applications include identifying the most influential person(s) in a social network, key infrastructure nodes in the Internet or urban networks, super-spreaders of disease, and brain networks. Centrality concepts were first developed in social network analysis, and many of the terms used to measure centrality reflect their sociological origin. Over time, the concept has expanded substantially, leading to the development of hundreds of distin
Tarjan's strongly connected components algorithm
graph theory algorithm
Barabási–Albert model
algorithm for generating random networks
bidirectional search
algorithm for finding shortest paths by simultaneously searching from the source and destination until both searches meet
Hopcroft–Karp algorithm
algorithm for maximum cardinality matching in bipartite graphs
D*
D* (pronounced "D star") is any one of the following three related incremental search algorithms:

graph traversal
checking and/or changing each vertex in a graph

belief propagation
algorithm

Kosaraju's algorithm
algorithm to find the strongly connected component of a directed graph
Edmonds' algorithm
algorithm for finding optimal branchings in graph theory
bully algorithm
method for picking a coordinator from distributed computer processes, in which the process with the highest ID number among non-failed processes is picked
graph neural network
specialized artificial neural networks that are designed for tasks whose inputs are graphs
subgraph isomorphism problem
the NP-complete problem of testing whether one graph is a subgraph of another
push–relabel maximum flow algorithm
algorithm
Cuthill–McKee algorithm
algorithm
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*.
graph isomorphism problem
computational problem of determining whether two finite graphs are isomorphic
Karger's algorithm
randomized algorithm for minimum cuts
degeneracy
measure of graph sparsity
force-directed graph drawing
physical simulation to visualize graphs
Spreading activation
how brains and associative networks search for information
Tarjan's off-line least common ancestors algorithm
algorithm for finding the lowest common ancestors of a set of pairs of nodes in a tree, using the union-find data structure
blossom algorithm
algorithm for constructing maximum matchings on a graph
lexicographic breadth-first search
graph algorithm producing a vertex order consistent with BFS
graph embedding
concept in graph theory
Havel–Hakimi algorithm
algorithm in graph theory
Reverse-delete algorithm
minimum spanning forest algorithm that greedily deletes edges
iterative deepening A*
heuristic pathfinding algorithm
FKT algorithm
algorithm for counting perfect matchings in planar graphs
fringe search
graph search algorithm
Bron–Kerbosch algorithm
a recursive backtracking algorithm for finding maximal cliques in an undirected graph

jump point search
search algorithm

widest path problem
problem of maximizing the weight of the minimum-weight edge in the path between two vertices
Sethi–Ullman algorithm
Algorithm for minimising register usage