HOME

TheInfoList



OR:

The NIST ''Dictionary of Algorithms and Data Structures'' is a reference work maintained by the U.S.
National Institute of Standards and Technology The National Institute of Standards and Technology (NIST) is an agency of the United States Department of Commerce whose mission is to promote American innovation and industrial competitiveness. NIST's activities are organized into Outline of p ...
. It defines a large number of terms relating to algorithms and data structures. For algorithms and data structures not necessarily mentioned here, see
list of algorithms An algorithm is fundamentally a set of rules or defined procedures that is typically designed and used to solve a specific problem or a broad set of problems. Broadly, algorithms define process(es), sets of rules, or methodologies that are to be f ...
and
list of data structures This is a list of well-known data structures. For a wider list of terms, see list of terms relating to algorithms and data structures. For a comparison of running times for a subset of this list see comparison of data structures. Data types ...
. This list of terms was originally derived from the index of that document, and is in the
public domain The public domain (PD) consists of all the creative work to which no Exclusive exclusive intellectual property rights apply. Those rights may have expired, been forfeited, expressly Waiver, waived, or may be inapplicable. Because no one holds ...
, as it was compiled by a Federal Government employee as part of a Federal Government work. Some of the terms defined are: __NOTOC__


A

* absolute performance guarantee *
abstract data type In computer science, an abstract data type (ADT) is a mathematical model for data types, defined by its behavior (semantics) from the point of view of a '' user'' of the data, specifically in terms of possible values, possible operations on data ...
(ADT) *
abstract syntax tree An abstract syntax tree (AST) is a data structure used in computer science to represent the structure of a program or code snippet. It is a tree representation of the abstract syntactic structure of text (often source code) written in a formal ...
(AST) * (a,b)-tree * accepting state * Ackermann's function * active data structure *
acyclic directed graph In mathematics, particularly graph theory, and computer science, a directed acyclic graph (DAG) is a directed graph with no directed cycles. That is, it consists of vertices and edges (also called ''arcs''), with each edge directed from one ...
* adaptive heap sort * adaptive Huffman coding * adaptive k-d tree * adaptive sort * address-calculation sort *
adjacency list In graph theory and computer science, an adjacency list is a collection of unordered lists used to represent a finite graph. Each unordered list within an adjacency list describes the set of neighbors of a particular vertex in the graph. This ...
representation *
adjacency matrix In graph theory and computer science, an adjacency matrix is a square matrix used to represent a finite graph (discrete mathematics), graph. The elements of the matrix (mathematics), matrix indicate whether pairs of Vertex (graph theory), vertices ...
representation *
adversary An adversary is generally considered to be a person, group, or force that opposes and/or attacks. Adversary may also refer to: * Satan ("adversary" in Hebrew), in Abrahamic religions Entertainment Fiction * Adversary (comics), villain from t ...
*
algorithm In mathematics and computer science, an algorithm () is a finite sequence of Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algo ...
* algorithm BSTW * algorithm FGK *
algorithmic efficiency In computer science, algorithmic efficiency is a property of an algorithm which relates to the amount of computational resources used by the algorithm. Algorithmic efficiency can be thought of as analogous to engineering productivity for a repea ...
* algorithmically solvable * algorithm V * all pairs shortest path *
alphabet An alphabet is a standard set of letter (alphabet), letters written to represent particular sounds in a spoken language. Specifically, letters largely correspond to phonemes as the smallest sound segments that can distinguish one word from a ...
* Alpha Skip Search algorithm * alternating path *
alternating Turing machine In computational complexity theory, an alternating Turing machine (ATM) is a non-deterministic Turing machine (NTM) with a rule for accepting computations that generalizes the rules used in the definition of the complexity classes NP and co-NP ...
* alternation * American flag sort *
amortized cost The historical cost of an asset at the time it is acquired or created is the value of the costs incurred in acquiring or creating the asset, comprising the consideration paid to acquire or create the asset plus transaction costs. Historical cost ...
*
ancestor An ancestor, also known as a forefather, fore-elder, or a forebear, is a parent or ( recursively) the parent of an antecedent (i.e., a grandparent, great-grandparent, great-great-grandparent and so forth). ''Ancestor'' is "any person from ...
* and * and-or tree *
American National Standards Institute The American National Standards Institute (ANSI ) is a private nonprofit organization that oversees the development of voluntary consensus standards for products, services, processes, systems, and personnel in the United States. The organiz ...
(ANSI) * antichain *
antisymmetric relation In mathematics, a binary relation R on a set X is antisymmetric if there is no pair of ''distinct'' elements of X each of which is related by R to the other. More formally, R is antisymmetric precisely if for all a, b \in X, \text \,aRb\, \text ...
* AP * Apostolico–Crochemore algorithm * Apostolico–Giancarlo algorithm *
approximate string matching In computer science, approximate string matching (often colloquially referred to as fuzzy string searching) is the technique of finding strings that match a pattern approximately (rather than exactly). The problem of approximate string matching ...
*
approximation algorithm In computer science and operations research, approximation algorithms are efficient algorithms that find approximate solutions to optimization problems (in particular NP-hard problems) with provable guarantees on the distance of the returned sol ...
* arborescence *
arithmetic coding Arithmetic coding (AC) is a form of entropy encoding used in lossless data compression. Normally, a String (computer science), string of characters is represented using a fixed number of bits per character, as in the American Standard Code for In ...
* array *
array index In computer science, an array is a data structure consisting of a collection of ''elements'' ( values or variables), of same memory size, each identified by at least one ''array index'' or ''key'', a collection of which may be a tuple, known ...
* array merging * array search * articulation point * A* search algorithm *
assignment problem The assignment problem is a fundamental combinatorial optimization problem. In its most general form, the problem is as follows: :The problem instance has a number of ''agents'' and a number of ''tasks''. Any agent can be assigned to perform any t ...
*
association list In computer programming and particularly in Lisp, an association list, often referred to as an alist, is a linked list in which each list element (or node) comprises a key and a value. The association list is said to ''associate'' the value wit ...
*
associative In mathematics, the associative property is a property of some binary operations that rearranging the parentheses in an expression will not change the result. In propositional logic, associativity is a valid rule of replacement for express ...
*
associative array In computer science, an associative array, key-value store, map, symbol table, or dictionary is an abstract data type that stores a collection of (key, value) pairs, such that each possible key appears at most once in the collection. In math ...
* asymptotically tight bound * asymptotic bound * asymptotic lower bound * asymptotic space complexity * asymptotic time complexity * asymptotic upper bound *
augmenting path In graph theory, a flow network (also known as a transportation network) is a directed graph where each edge has a capacity and each edge receives a flow. The amount of flow on an edge cannot exceed the capacity of the edge. Often in operations res ...
*
automaton An automaton (; : automata or automatons) is a relatively self-operating machine, or control mechanism designed to automatically follow a sequence of operations, or respond to predetermined instructions. Some automata, such as bellstrikers i ...
* average case * average-case cost *
AVL tree In computer science, an AVL tree (named after inventors Adelson-Velsky and Landis) is a self-balancing binary search tree. In an AVL tree, the heights of the two child subtrees of any node differ by at most one; if at any time they differ by m ...
*
axiomatic semantics Axiomatic semantics is an approach based on mathematical logic for proving the correctness of computer programs. It is closely related to Hoare logic. Axiomatic semantics define the meaning of a command in a program by describing its effect on ...


B

*
backtracking Backtracking is a class of algorithms for finding solutions to some computational problems, notably constraint satisfaction problems, that incrementally builds candidates to the solutions, and abandons a candidate ("backtracks") as soon as it de ...
*
bag A bag, also known regionally as a sack, is a common tool in the form of a floppy container, typically made of cloth, leather, bamboo, paper, or plastic. The use of bags predates recorded history, with the earliest bags being lengths of animal s ...
*
Baillie–PSW primality test The Baillie–PSW primality test is a probabilistic or possibly deterministic primality testing algorithm that determines whether a number is composite or is a probable prime. It is named after Robert Baillie, Carl Pomerance, John Selfridge, ...
* balanced binary search tree * balanced binary tree * balanced k-way merge sort * balanced merge sort * balanced multiway merge * balanced multiway tree * balanced quicksort * balanced tree * balanced two-way merge sort * BANG file * Batcher sort * Baum Welch algorithm * BB α tree * BDD * BD-tree *
Bellman–Ford algorithm The Bellman–Ford algorithm is an algorithm that computes shortest paths from a single source vertex (graph theory), vertex to all of the other vertices in a weighted digraph. It is slower than Dijkstra's algorithm for the same problem, but more ...
* Benford's law * best case * best-case cost *
best-first search Best-first search is a class of search algorithms which explores a graph by expanding the most promising node chosen according to a specified rule. Judea Pearl described best-first search as estimating the promise of node ''n'' by a "heuristic eva ...
*
biconnected component In graph theory, a biconnected component or block (sometimes known as a 2-connected component) is a maximal biconnected subgraph. Any connected graph decomposes into a tree of biconnected components called the block-cut tree of the graph. Th ...
* biconnected graph * bidirectional bubble sort *
big-O notation Big ''O'' notation is a mathematical notation that describes the limiting behavior of a function when the argument tends towards a particular value or infinity. Big O is a member of a family of notations invented by German mathematicians Pau ...
* binary function * binary fuse filter * binary GCD algorithm *
binary heap A binary heap is a heap (data structure), heap data structure that takes the form of a binary tree. Binary heaps are a common way of implementing priority queues. The binary heap was introduced by J. W. J. Williams in 1964 as a data structure fo ...
* binary insertion sort * binary knapsack problem * binary priority queue *
binary relation In mathematics, a binary relation associates some elements of one Set (mathematics), set called the ''domain'' with some elements of another set called the ''codomain''. Precisely, a binary relation over sets X and Y is a set of ordered pairs ...
*
binary search 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. Binary search compares the target value to the m ...
*
binary search tree In computer science, a binary search tree (BST), also called an ordered or sorted binary tree, is a Rooted tree, rooted binary tree data structure with the key of each internal node being greater than all the keys in the respective node's left ...
*
binary tree In computer science, a binary tree is a tree data structure in which each node has at most two children, referred to as the ''left child'' and the ''right child''. That is, it is a ''k''-ary tree with . A recursive definition using set theor ...
* binary tree representation of trees * bingo sort *
binomial heap In computer science, a binomial heap is a data structure that acts as a priority queue. It is an example of a mergeable heap (also called meldable heap), as it supports merging two heaps in logarithmic time. It is implemented as a Heap (data st ...
* binomial tree *
bin packing problem The bin packing problem is an optimization problem, in which items of different sizes must be packed into a finite number of bins or containers, each of a fixed given capacity, in a way that minimizes the number of bins used. The problem has m ...
* bin sort * bintree *
bipartite graph In the mathematics, mathematical field of graph theory, a bipartite graph (or bigraph) is a Graph (discrete mathematics), graph whose vertex (graph theory), vertices can be divided into two disjoint sets, disjoint and Independent set (graph theo ...
* bipartite matching * bisector * bitonic sort * bit vector * Bk tree * bdk tree (not to be confused with k-d-B-tree) *
block Block or blocked may refer to: Arts, entertainment and media Broadcasting * Block programming, the result of a programming strategy in broadcasting * W242BX, a radio station licensed to Greenville, South Carolina, United States known as ''96.3 ...
* block addressing index * blocking flow * block search *
Bloom filter In computing, a Bloom filter is a space-efficient probabilistic data structure, conceived by Burton Howard Bloom in 1970, that is used to test whether an element is a member of a set. False positive matches are possible, but false negatives ar ...
*
blossom (graph theory) In graph theory, a mathematical discipline, a factor-critical graph (or hypomatchable graph.) is a Graph (discrete mathematics), graph with an odd number of vertices in which deleting one vertex in every possible way results in a graph with a pe ...
*
bogosort In computer science, bogosort (also known as permutation sort and stupid sort) is a sorting algorithm based on the generate and test paradigm. The function successively generates permutations of its input until it finds one that is sorted. It i ...
* boogol * Boolean *
Boolean expression In computer science, a Boolean expression (also known as logical expression) is an expression used in programming languages that produces a Boolean value when evaluated. A Boolean value is either true or false. A Boolean expression may be compos ...
*
Boolean function In mathematics, a Boolean function is a function whose arguments and result assume values from a two-element set (usually , or ). Alternative names are switching function, used especially in older computer science literature, and truth functi ...
* bottleneck traveling salesman * bottom-up tree automaton * boundary-based representation * bounded error probability in polynomial time * bounded queue * bounded stack * Bounding volume hierarchy, also referred to as bounding volume tree (BV-tree, BVT) * Boyer–Moore string-search algorithm * Boyer–Moore–Horspool algorithm * bozo sort *
B+ tree A B+ tree is an m-ary tree with a variable but often large number of children per node. A B+ tree consists of a root, internal nodes and leaves. The root may be either a leaf or a node with two or more children. A B+ tree can be viewed as a B ...
* BPP (complexity) * Bradford's law *
branch A branch, also called a ramus in botany, is a stem that grows off from another stem, or when structures like veins in leaves are divided into smaller veins. History and etymology In Old English, there are numerous words for branch, includ ...
(as in control flow) *
branch A branch, also called a ramus in botany, is a stem that grows off from another stem, or when structures like veins in leaves are divided into smaller veins. History and etymology In Old English, there are numerous words for branch, includ ...
(as in revision control) *
branch and bound Branch and bound (BB, B&B, or BnB) is a method for solving optimization problems by breaking them down into smaller sub-problems and using a bounding function to eliminate sub-problems that cannot contain the optimal solution. It is an algorithm ...
*
breadth-first search Breadth-first search (BFS) is an algorithm for searching a tree data structure for a node that satisfies a given property. It starts at the tree root and explores all nodes at the present depth prior to moving on to the nodes at the next dept ...
* Bresenham's line algorithm * brick sort *
bridge A bridge is a structure built to Span (engineering), span a physical obstacle (such as a body of water, valley, road, or railway) without blocking the path underneath. It is constructed for the purpose of providing passage over the obstacle, whi ...
*
British Museum algorithm The British Museum algorithm is a general approach to finding a solution by checking all possibilities one by one, beginning with the smallest. The term refers to a conceptual, not a practical, technique where the number of possibilities is enorm ...
*
brute-force attack In cryptography, a brute-force attack or exhaustive key search is a cryptanalytic attack that consists of an attacker submitting many possible keys or passwords with the hope of eventually guessing correctly. This strategy can theoretically be ...
*
brute-force search In computer science, brute-force search or exhaustive search, also known as generate and test, is a very general problem-solving technique and algorithmic paradigm that consists of Iteration#Computing, systematically checking all possible candida ...
* brute-force string search * brute-force string search with mismatches * BSP-tree * B*-tree *
B-tree In computer science, a B-tree is a self-balancing tree data structure that maintains sorted data and allows searches, sequential access, insertions, and deletions in logarithmic time. The B-tree generalizes the binary search tree, allowing fo ...
*
bubble sort Bubble sort, sometimes referred to as sinking sort, is a simple sorting algorithm that repeatedly steps through the input list element by element, comparing the current element with the one after it, Swap (computer science), swapping their values ...
* bucket * bucket array * bucketing method * bucket sort * bucket trie * buddy system * buddy tree * build-heap *
Burrows–Wheeler transform The Burrows–Wheeler transform (BWT) rearranges a character string into runs of similar characters, in a manner that can be reversed to recover the original string. Since compression techniques such as move-to-front transform and run-length enc ...
(BWT) *
busy beaver In theoretical computer science, the busy beaver game aims to find a terminating Computer program, program of a given size that (depending on definition) either produces the most output possible, or runs for the longest number of steps. Since an ...
*
Byzantine generals A Byzantine fault is a condition of a system, particularly a distributed computing system, where a fault occurs such that different symptoms are presented to different observers, including imperfect information on whether a system component has fa ...


C

* cactus stack *
Calculus of Communicating Systems The calculus of communicating systems (CCS) is a process calculus introduced by Robin Milner around 1980 and the title of a book describing the calculus. Its actions model indivisible communications between exactly two participants. The formal lang ...
(CCS) * calendar queue * candidate consistency testing * candidate verification *
canonical complexity class In computational complexity theory, a complexity class is a set (mathematics), set of computational problems "of related resource-based computational complexity, complexity". The two most commonly analyzed resources are time complexity, time and s ...
* capacitated facility location * capacity * capacity constraint * Cartesian tree * cascade merge sort *
caverphone The Caverphone within linguistics and computing, is a phonetic matching algorithm invented to identify English names with their sounds, originally built to process a custom dataset compound between 1893 and 1938 in southern Dunedin, New Zealand. St ...
*
Cayley–Purser algorithm The Cayley–Purser algorithm was a public-key cryptography algorithm published in early 1999 by 16-year-old Ireland, Irishwoman Sarah Flannery, based on an unpublished work by Michael Purser, founder of Baltimore Technologies, a Dublin data secur ...
* C curve * cell probe model * cell tree *
cellular automaton A cellular automaton (pl. cellular automata, abbrev. CA) is a discrete model of computation studied in automata theory. Cellular automata are also called cellular spaces, tessellation automata, homogeneous structures, cellular structures, tessel ...
*
centroid In mathematics and physics, the centroid, also known as geometric center or center of figure, of a plane figure or solid figure is the arithmetic mean position of all the points in the figure. The same definition extends to any object in n-d ...
* certificate *
chain (order theory) In mathematics, a total order or linear order is a partial order in which any two elements are comparable. That is, a total order is a binary relation \leq on some set X, which satisfies the following for all a, b and c in X: # a \leq a ( ref ...
* chaining (algorithm) *
child A child () is a human being between the stages of childbirth, birth and puberty, or between the Development of the human body, developmental period of infancy and puberty. The term may also refer to an unborn human being. In English-speaking ...
*
Chinese postman problem In graph theory and combinatorial optimization, Guan's route problem, the Chinese postman problem, postman tour or route inspection problem is to find a shortest closed path or circuit that visits every edge of an (connected) undirected graph at ...
*
Chinese remainder theorem In mathematics, the Chinese remainder theorem states that if one knows the remainders of the Euclidean division of an integer ''n'' by several integers, then one can determine uniquely the remainder of the division of ''n'' by the product of thes ...
* Christofides algorithm * Christofides heuristic *
chromatic index In graph theory, a proper edge coloring of a Graph (discrete mathematics), graph is an assignment of "colors" to the edges of the graph so that no two incident edges have the same color. For example, the figure to the right shows an edge colorin ...
*
chromatic number In graph theory, graph coloring is a methodic assignment of labels traditionally called "colors" to elements of a graph. The assignment is subject to certain constraints, such as that no two adjacent elements have the same color. Graph coloring i ...
*
Church–Turing thesis In Computability theory (computation), computability theory, the Church–Turing thesis (also known as computability thesis, the Turing–Church thesis, the Church–Turing conjecture, Church's thesis, Church's conjecture, and Turing's thesis) ...
* circuit *
circuit complexity In theoretical computer science, circuit complexity is a branch of computational complexity theory in which Boolean functions are classified according to the size or depth of the Boolean circuits that compute them. A related notion is the circui ...
* circuit value problem * circular list *
circular queue In computer science, a circular buffer, circular queue, cyclic buffer or ring buffer is a data structure that uses a single, fixed-size buffer (computer science), buffer as if it were connected end-to-end. This structure lends itself easily to bu ...
* clique * clique problem * clustering (see
hash table In computer science, a hash table is a data structure that implements an associative array, also called a dictionary or simply map; an associative array is an abstract data type that maps Unique key, keys to Value (computer science), values. ...
) * clustering free * coalesced hashing * coarsening * cocktail shaker sort * codeword * coding tree * collective recursion *
collision In physics, a collision is any event in which two or more bodies exert forces on each other in a relatively short time. Although the most common use of the word ''collision'' refers to incidents in which two or more objects collide with great for ...
* collision resolution scheme * Colussi *
combination In mathematics, a combination is a selection of items from a set that has distinct members, such that the order of selection does not matter (unlike permutations). For example, given three fruits, say an apple, an orange and a pear, there are ...
* comb sort *
Communicating Sequential Processes In computer science, communicating sequential processes (CSP) is a formal language for describing patterns of interaction in concurrent systems. It is a member of the family of mathematical theories of concurrency known as process algebras, or p ...
*
commutative In mathematics, a binary operation is commutative if changing the order of the operands does not change the result. It is a fundamental property of many binary operations, and many mathematical proofs depend on it. Perhaps most familiar as a pr ...
* compact DAWG * compact trie *
comparison sort A comparison sort is a type of sorting algorithm that only reads the list elements through a single abstract comparison operation (often a "less than or equal to" operator or a three-way comparison) that determines which of two elements should oc ...
* competitive analysis * competitive ratio * complement *
complete binary tree In computer science, a binary tree is a Tree (data structure), tree data structure in which each node has at most two child node, children, referred to as the ''left child'' and the ''right child''. That is, it is a m-ary tree, ''k''-ary tree wi ...
*
complete graph In the mathematical field of graph theory, a complete graph is a simple undirected graph in which every pair of distinct vertices is connected by a unique edge. A complete digraph is a directed graph in which every pair of distinct vertices i ...
* completely connected graph * complete tree *
complexity Complexity characterizes the behavior of a system or model whose components interact in multiple ways and follow local rules, leading to non-linearity, randomness, collective dynamics, hierarchy, and emergence. The term is generally used to c ...
*
complexity class In computational complexity theory, a complexity class is a set (mathematics), set of computational problems "of related resource-based computational complexity, complexity". The two most commonly analyzed resources are time complexity, time and s ...
*
computable Computability is the ability to solve a problem by an effective procedure. It is a key topic of the field of computability theory within mathematical logic and the theory of computation within computer science. The computability of a problem is cl ...
*
concave function In mathematics, a concave function is one for which the function value at any convex combination of elements in the domain is greater than or equal to that convex combination of those domain elements. Equivalently, a concave function is any funct ...
* concurrent flow * concurrent read, concurrent write * concurrent read, exclusive write *
configuration Configuration or configurations may refer to: Computing * Computer configuration or system configuration * Configuration file, a software file used to configure the initial settings for a computer program * Configurator, also known as choice board ...
* confluently persistent data structure * conjunction * connected components * connected graph *
co-NP In computational complexity theory, co-NP is a complexity class. A decision problem X is a member of co-NP if and only if its complement is in the complexity class NP. The class can be defined as follows: a decision problem is in co-NP if and o ...
*
constant function In mathematics, a constant function is a function whose (output) value is the same for every input value. Basic properties As a real-valued function of a real-valued argument, a constant function has the general form or just For example, ...
* continuous knapsack problem *
Cook reduction In computability theory, a Turing reduction from a decision problem A to a decision problem B is an oracle machine that decides problem A given an oracle for B (Rogers 1967, Soare 1987) in finitely many steps. It can be understood as an algorithm ...
* Cook's theorem * counting sort * covering * CRCW * Crew (algorithm) *
critical path problem The critical path method (CPM), or critical path analysis (CPA), is an algorithm for scheduling a set of project activities. A critical path is determined by identifying the longest stretch of dependent activities and measuring the time requ ...
* CSP (communicating sequential processes) * CSP (constraint satisfaction problem) * CTL * cuckoo hashing * cuckoo filter * cut (graph theory) *
cut (logic programming) The cut, in Prolog, is a goal, written as !, which always succeeds but cannot be backtracked. Cuts can prevent unwanted backtracking, which could add unwanted solutions and/or space/time overhead to a query. The cut should be used sparingly. W ...
* cutting plane *
cutting stock problem In operations research, the cutting-stock problem is the problem of cutting standard-sized pieces of Inventory, stock material, such as paper rolls or sheet metal, into pieces of specified sizes while minimizing material wasted. It is an optimizat ...
* cutting theorem *
cut vertex In graph theory, a biconnected component or block (sometimes known as a 2-connected component) is a maximal biconnected subgraph. Any connected graph decomposes into a tree of biconnected components called the block-cut tree of the graph. Th ...
* cycle sort *
cyclic redundancy check A cyclic redundancy check (CRC) is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to digital data. Blocks of data entering these systems get a short ''check value'' attached, based on ...
(CRC)


D

* D-adjacent * DAG shortest paths * Damerau–Levenshtein distance *
data structure In computer science, a data structure is a data organization and storage format that is usually chosen for Efficiency, efficient Data access, access to data. More precisely, a data structure is a collection of data values, the relationships amo ...
* decidable *
decidable language In mathematics, logic and computer science, a recursive (or ''decidable'') language is a recursive subset of the Kleene closure of an alphabet. Equivalently, a formal language is recursive if there exists a Turing machine that decides the forma ...
* decimation *
decision problem In computability theory and computational complexity theory, a decision problem is a computational problem that can be posed as a yes–no question on a set of input values. An example of a decision problem is deciding whether a given natura ...
*
decision tree A decision tree is a decision support system, decision support recursive partitioning structure that uses a Tree (graph theory), tree-like Causal model, model of decisions and their possible consequences, including probability, chance event ou ...
* decomposable searching problem * degree * dense graph * depoissonization * depth *
depth-first search Depth-first search (DFS) is an algorithm for traversing or searching tree or graph data structures. The algorithm starts at the root node (selecting some arbitrary node as the root node in the case of a graph) and explores as far as possible al ...
(DFS) * deque * derangement * descendant (see
tree structure A tree structure, tree diagram, or tree model is a way of representing the hierarchical nature of a structure in a graphical form. It is named a "tree structure" because the classic representation resembles a tree, although the chart is gen ...
) *
deterministic Determinism is the metaphysical view that all events within the universe (or multiverse) can occur only in one possible way. Deterministic theories throughout the history of philosophy have developed from diverse and sometimes overlapping mo ...
*
deterministic algorithm In computer science, a deterministic algorithm is an algorithm that, given a particular input, will always produce the same output, with the underlying machine always passing through the same sequence of states. Deterministic algorithms are by fa ...
* deterministic finite automata string search *
deterministic finite automaton In the theory of computation, a branch of theoretical computer science, a deterministic finite automaton (DFA)—also known as deterministic finite acceptor (DFA), deterministic finite-state machine (DFSM), or deterministic finite-state auto ...
(DFA) * deterministic finite state machine * deterministic finite tree automaton * deterministic pushdown automaton (DPDA) * deterministic tree automaton * Deutsch–Jozsa algorithm * DFS forest * DFTA * diagonalization argument *
diameter In geometry, a diameter of a circle is any straight line segment that passes through the centre of the circle and whose endpoints lie on the circle. It can also be defined as the longest Chord (geometry), chord of the circle. Both definitions a ...
* dichotomic search * dictionary (data structure) * diet (see ''discrete interval encoding tree'' below) *
difference (set theory) In set theory, the complement of a set , often denoted by A^c (or ), is the set of elements not in . When all elements in the universe, i.e. all elements under consideration, are considered to be members of a given set , the absolute complemen ...
* digital search tree * digital tree * digraph *
Dijkstra's algorithm Dijkstra's algorithm ( ) is an algorithm for finding the shortest paths between nodes in a weighted graph, which may represent, for example, a road network. It was conceived by computer scientist Edsger W. Dijkstra in 1956 and published three ...
* diminishing increment sort * dining philosophers * direct chaining hashing *
directed acyclic graph In mathematics, particularly graph theory, and computer science, a directed acyclic graph (DAG) is a directed graph with no directed cycles. That is, it consists of vertices and edges (also called ''arcs''), with each edge directed from one ...
(DAG) * directed acyclic word graph (DAWG) * directed graph * discrete interval encoding tree * discrete p-center * disjoint set *
disjunction In logic, disjunction (also known as logical disjunction, logical or, logical addition, or inclusive disjunction) is a logical connective typically notated as \lor and read aloud as "or". For instance, the English language sentence "it is ...
*
distributed algorithm A distributed algorithm is an algorithm designed to run on computer hardware constructed from interconnected processors. Distributed algorithms are used in different application areas of distributed computing, such as telecommunications, scientifi ...
* distributional complexity * distribution sort *
divide-and-conquer algorithm In computer science, divide and conquer is an algorithm design paradigm. A divide-and-conquer algorithm recursively breaks down a problem into two or more sub-problems of the same or related type, until these become simple enough to be solved dir ...
* divide and marriage before conquest * division method *
data domain In data management and database analysis, a data domain is the collection of values that a data element may contain. The rule for determining the domain boundary may be as simple as a data type with an enumerated list of values. For example, ...
*
don't-care term In digital logic, a don't-care term (abbreviated DC, historically also known as ''redundancies'', ''irrelevancies'', ''optional entries'', ''invalid combinations'', ''vacuous combinations'', ''forbidden combinations'', ''unused states'' or ''l ...
* Doomsday rule * double-direction bubble sort *
double-ended priority queue In computer science, a double-ended priority queue (DEPQ)double hashing Double hashing is a computer programming technique used in conjunction with open addressing in hash tables to resolve hash collisions, by using a secondary hash of the key as an offset when a collision occurs. Double hashing with open addressing is ...
* double left rotation *
Double Metaphone Metaphone is a phonetic algorithm, published by Lawrence Philips in 1990, for indexing words by their English pronunciation. It fundamentally improves on the Soundex algorithm by using information about variations and inconsistencies in English s ...
* double right rotation *
double-ended queue In computer science, a double-ended queue (abbreviated to deque, ) is an abstract data type that generalizes a queue, for which elements can be added to or removed from either the front (head) or back (tail). It is also often called a head-t ...
* doubly linked list * dragon curve *
dual graph In the mathematics, mathematical discipline of graph theory, the dual graph of a planar graph is a graph that has a vertex (graph theory), vertex for each face (graph theory), face of . The dual graph has an edge (graph theory), edge for each p ...
*
dual linear program The dual of a given linear program (LP) is another LP that is derived from the original (the primal) LP in the following schematic way: * Each variable in the primal LP becomes a constraint in the dual LP; * Each constraint in the primal LP becom ...
* dyadic tree *
dynamic array In computer science, a dynamic array, growable array, resizable array, dynamic table, mutable array, or array list is a random access, variable-size list data structure that allows elements to be added or removed. It is supplied with standard l ...
* dynamic data structure * dynamic hashing * dynamic programming * dynamization transformation


E

*
edge Edge or EDGE may refer to: Technology Computing * Edge computing, a network load-balancing system * Edge device, an entry point to a computer network * Adobe Edge, a graphical development application * Microsoft Edge, a web browser developed by ...
* eb tree (elastic binary tree) * edge coloring * edge connectivity * edge crossing * edge-weighted graph *
edit distance In computational linguistics and computer science, edit distance is a string metric, i.e. a way of quantifying how dissimilar two String (computing), strings (e.g., words) are to one another, that is measured by counting the minimum number of opera ...
* edit operation * edit script * 8 queens * elastic-bucket trie * element uniqueness * end-of-string * epidemic algorithm *
Euclidean algorithm In mathematics, the Euclidean algorithm,Some widely used textbooks, such as I. N. Herstein's ''Topics in Algebra'' and Serge Lang's ''Algebra'', use the term "Euclidean algorithm" to refer to Euclidean division or Euclid's algorithm, is a ...
*
Euclidean distance In mathematics, the Euclidean distance between two points in Euclidean space is the length of the line segment between them. It can be calculated from the Cartesian coordinates of the points using the Pythagorean theorem, and therefore is o ...
* Euclidean Steiner tree * Euclidean traveling salesman problem * Euclid's algorithm * Euler cycle * Eulerian graph *
Eulerian path In graph theory, an Eulerian trail (or Eulerian path) is a trail (graph theory), trail in a finite graph (discrete mathematics), graph that visits every edge (graph theory), edge exactly once (allowing for revisiting vertices). Similarly, an Eule ...
* exact string matching * EXCELL ( extendible cell) * exchange sort *
exclusive or Exclusive or, exclusive disjunction, exclusive alternation, logical non-equivalence, or logical inequality is a logical operator whose negation is the logical biconditional. With two inputs, XOR is true if and only if the inputs differ (on ...
* exclusive read, concurrent write (ERCW) * exclusive read, exclusive write (EREW) * exhaustive search * existential state * expandable hashing *
expander graph In graph theory, an expander graph is a sparse graph that has strong connectivity properties, quantified using vertex, edge or spectral expansion. Expander constructions have spawned research in pure and applied mathematics, with several appli ...
*
exponential Exponential may refer to any of several mathematical topics related to exponentiation, including: * Exponential function, also: **Matrix exponential, the matrix analogue to the above *Exponential decay, decrease at a rate proportional to value * Ex ...
* extended binary tree *
extended Euclidean algorithm In arithmetic and computer programming, the extended Euclidean algorithm is an extension to the Euclidean algorithm, and computes, in addition to the greatest common divisor (gcd) of integers ''a'' and ''b'', also the coefficients of Bézout's id ...
* extended k-d tree *
extendible hashing Extendible hashing is a type of hash system which treats a hash as a bit string and uses a trie for bucket lookup. Because of the hierarchical nature of the system, re-hashing is an incremental operation (done one bucket at a time, as needed). T ...
* external index *
external memory algorithm In computing, external memory algorithms or out-of-core algorithms are algorithms that are designed to process data that are too large to fit into a computer's main memory at once. Such algorithms must be optimized to efficiently fetch and access d ...
* external memory data structure * external merge * external merge sort * external node * external quicksort * external radix sort * external sort * extrapolation search * extremal *
extreme point In mathematics, an extreme point of a convex set S in a Real number, real or Complex number, complex vector space is a point in S that does not lie in any open line segment joining two points of S. The extreme points of a line segment are calle ...


F

* facility location * factor (see
substring In formal language theory and computer science, a substring is a contiguous sequence of characters within a string. For instance, "''the best of''" is a substring of "''It was the best of times''". In contrast, "''Itwastimes''" is a subsequenc ...
) *
factorial In mathematics, the factorial of a non-negative denoted is the Product (mathematics), product of all positive integers less than or equal The factorial also equals the product of n with the next smaller factorial: \begin n! &= n \times ...
*
fast Fourier transform A fast Fourier transform (FFT) is an algorithm that computes the discrete Fourier transform (DFT) of a sequence, or its inverse (IDFT). A Fourier transform converts a signal from its original domain (often time or space) to a representation in ...
(FFT) * fathoming *
feasible region In mathematical optimization and computer science, a feasible region, feasible set, or solution space is the set of all possible points (sets of values of the choice variables) of an optimization problem that satisfy the problem's constraints, ...
* feasible solution * feedback edge set * feedback vertex set * Ferguson–Forcade algorithm *
Fibonacci number In mathematics, the Fibonacci sequence is a Integer sequence, sequence in which each element is the sum of the two elements that precede it. Numbers that are part of the Fibonacci sequence are known as Fibonacci numbers, commonly denoted . Many w ...
* Fibonacci search * Fibonacci tree * Fibonacci heap * Find * find kth least element * finitary tree * finite Fourier transform (
discrete Fourier transform In mathematics, the discrete Fourier transform (DFT) converts a finite sequence of equally-spaced Sampling (signal processing), samples of a function (mathematics), function into a same-length sequence of equally-spaced samples of the discre ...
) *
finite-state machine A finite-state machine (FSM) or finite-state automaton (FSA, plural: ''automata''), finite automaton, or simply a state machine, is a mathematical model of computation. It is an abstract machine that can be in exactly one of a finite number o ...
* finite state machine minimization *
finite-state transducer A finite-state transducer (FST) is a finite-state machine with two memory ''tapes'', following the terminology for Turing machines: an input tape and an output tape. This contrasts with an ordinary finite-state automaton, which has a single tape. ...
* first come, first served * first-in, first-out (FIFO) * fixed-grid method * flash sort * flow * flow conservation * flow function *
flow network In graph theory, a flow network (also known as a transportation network) is a directed graph where each edge has a capacity and each edge receives a flow. The amount of flow on an edge cannot exceed the capacity of the edge. Often in operations re ...
*
Floyd–Warshall algorithm In computer science, the Floyd–Warshall algorithm (also known as Floyd's algorithm, the Roy–Warshall algorithm, the Roy–Floyd algorithm, or the WFI algorithm) is an algorithm for finding shortest paths in a directed weighted graph with po ...
* Ford–Bellman algorithm *
Ford–Fulkerson algorithm The Ford–Fulkerson method or Ford–Fulkerson algorithm (FFA) is a greedy algorithm that computes the maximum flow in a flow network. It is sometimes called a "method" instead of an "algorithm" as the approach to finding augmenting paths in a r ...
*
forest A forest is an ecosystem characterized by a dense ecological community, community of trees. Hundreds of definitions of forest are used throughout the world, incorporating factors such as tree density, tree height, land use, legal standing, ...
* forest editing problem *
formal language In logic, mathematics, computer science, and linguistics, a formal language is a set of strings whose symbols are taken from a set called "alphabet". The alphabet of a formal language consists of symbols that concatenate into strings (also c ...
*
formal methods In computer science, formal methods are mathematics, mathematically rigorous techniques for the formal specification, specification, development, Program analysis, analysis, and formal verification, verification of software and computer hardware, ...
*
formal verification In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of a system with respect to a certain formal specification or property, using formal methods of mathematics. Formal ver ...
* forward index *
fractal In mathematics, a fractal is a Shape, geometric shape containing detailed structure at arbitrarily small scales, usually having a fractal dimension strictly exceeding the topological dimension. Many fractals appear similar at various scale ...
* fractional knapsack problem * fractional solution * free edge *
free list A free list (or freelist) is a data structure used in a scheme for dynamic memory allocation. It operates by connecting unallocated regions of memory together in a linked list, using the first word of each unallocated region as a pointer to the ...
* free tree * free vertex * frequency count heuristic * full array * full binary tree * full inverted index * fully dynamic graph problem * fully persistent data structure * fully polynomial approximation scheme *
function (programming) In computer programming, a function (also procedure, method, subroutine, routine, or subprogram) is a callable unit of software logic that has a well-defined interface and behavior and can be invoked multiple times. Callable units provide a p ...
*
function (mathematics) In mathematics, a function from a set (mathematics), set to a set assigns to each element of exactly one element of .; the words ''map'', ''mapping'', ''transformation'', ''correspondence'', and ''operator'' are sometimes used synonymously. ...
* functional data structure


G

* Galil–Giancarlo * Galil–Seiferas *
gamma function In mathematics, the gamma function (represented by Γ, capital Greek alphabet, Greek letter gamma) is the most common extension of the factorial function to complex numbers. Derived by Daniel Bernoulli, the gamma function \Gamma(z) is defined ...
* GBD-tree * geometric optimization problem * global optimum * gnome sort * goobi *
graph Graph may refer to: Mathematics *Graph (discrete mathematics), a structure made of vertices and edges **Graph theory, the study of such graphs and their properties *Graph (topology), a topological space resembling a graph in the sense of discret ...
*
graph coloring In graph theory, graph coloring is a methodic assignment of labels traditionally called "colors" to elements of a Graph (discrete mathematics), graph. The assignment is subject to certain constraints, such as that no two adjacent elements have th ...
* graph concentration *
graph drawing Graph drawing is an area of mathematics and computer science combining methods from geometric graph theory and information visualization to derive two-dimensional depictions of graph (discrete mathematics), graphs arising from applications such ...
*
graph isomorphism In graph theory, an isomorphism of graphs ''G'' and ''H'' is a bijection between the vertex sets of ''G'' and ''H'' : f \colon V(G) \to V(H) such that any two vertices ''u'' and ''v'' of ''G'' are adjacent in ''G'' if and only if f(u) and f(v) a ...
*
graph partition In mathematics, a graph partition is the reduction of a Graph (discrete mathematics), graph to a smaller graph by partition of a set, partitioning its set of nodes into mutually exclusive groups. Edges of the original graph that cross between the g ...
*
Gray code The reflected binary code (RBC), also known as reflected binary (RB) or Gray code after Frank Gray (researcher), Frank Gray, is an ordering of the binary numeral system such that two successive values differ in only one bit (binary digit). For ...
*
greatest common divisor In mathematics, the greatest common divisor (GCD), also known as greatest common factor (GCF), of two or more integers, which are not all zero, is the largest positive integer that divides each of the integers. For two integers , , the greatest co ...
(GCD) *
greedy algorithm A greedy algorithm is any algorithm that follows the problem-solving heuristic of making the locally optimal choice at each stage. In many problems, a greedy strategy does not produce an optimal solution, but a greedy heuristic can yield locally ...
*
greedy heuristic A greedy algorithm is any algorithm that follows the problem-solving heuristic of making the locally optimal choice at each stage. In many problems, a greedy strategy does not produce an optimal solution, but a greedy heuristic can yield locally ...
* grid drawing * grid file *
Grover's algorithm In quantum computing, Grover's algorithm, also known as the quantum search algorithm, is a quantum algorithm for unstructured search that finds with high probability the unique input to a black box function that produces a particular output value, ...


H

*
halting problem In computability theory (computer science), computability theory, the halting problem is the problem of determining, from a description of an arbitrary computer program and an input, whether the program will finish running, or continue to run for ...
*
Hamiltonian cycle In the mathematics, mathematical field of graph theory, a Hamiltonian path (or traceable path) is a path (graph theory), path in an undirected or directed graph that visits each vertex (graph theory), vertex exactly once. A Hamiltonian cycle (or ...
*
Hamiltonian path In the mathematical field of graph theory, a Hamiltonian path (or traceable path) is a path in an undirected or directed graph that visits each vertex exactly once. A Hamiltonian cycle (or Hamiltonian circuit) is a cycle that visits each vert ...
*
Hamming distance In information theory, the Hamming distance between two String (computer science), strings or vectors of equal length is the number of positions at which the corresponding symbols are different. In other words, it measures the minimum number ...
* Harter–Highway dragon *
hash function A hash function is any Function (mathematics), function that can be used to map data (computing), data of arbitrary size to fixed-size values, though there are some hash functions that support variable-length output. The values returned by a ...
* hash heap *
hash table In computer science, a hash table is a data structure that implements an associative array, also called a dictionary or simply map; an associative array is an abstract data type that maps Unique key, keys to Value (computer science), values. ...
* hash table delete *
Hausdorff distance In mathematics, the Hausdorff distance, or Hausdorff metric, also called Pompeiu–Hausdorff distance, measures how far two subsets of a metric space are from each other. It turns the set of non-empty set, non-empty compact space, compact subsets o ...
* hB-tree * head * heap * heapify * heap property *
heapsort In computer science, heapsort is an efficient, comparison-based sorting algorithm that reorganizes an input array into a heap (a data structure where each node is greater than its children) and then repeatedly removes the largest node from that ...
* heaviest common subsequence *
height Height is measure of vertical distance, either vertical extent (how "tall" something or someone is) or vertical position (how "high" a point is). For an example of vertical extent, "This basketball player is 7 foot 1 inches in height." For an e ...
* height-balanced binary search tree * height-balanced tree *
heuristic A heuristic or heuristic technique (''problem solving'', '' mental shortcut'', ''rule of thumb'') is any approach to problem solving that employs a pragmatic method that is not fully optimized, perfected, or rationalized, but is nevertheless ...
*
hidden Markov model A hidden Markov model (HMM) is a Markov model in which the observations are dependent on a latent (or ''hidden'') Markov process (referred to as X). An HMM requires that there be an observable process Y whose outcomes depend on the outcomes of X ...
*
highest common factor In mathematics, the greatest common divisor (GCD), also known as greatest common factor (GCF), of two or more integers, which are not all zero, is the largest positive integer that divides each of the integers. For two integers , , the greatest co ...
*
Hilbert curve The Hilbert curve (also known as the Hilbert space-filling curve) is a Geometric continuity, continuous fractal curve, fractal space-filling curve first described by the German mathematician David Hilbert in 1891, as a variant of the space-filling ...
* histogram sort *
homeomorphic In mathematics and more specifically in topology, a homeomorphism ( from Greek roots meaning "similar shape", named by Henri Poincaré), also called topological isomorphism, or bicontinuous function, is a bijective and continuous function betw ...
* horizontal visibility map * Huffman encoding *
Hungarian algorithm The Hungarian method is a combinatorial optimization algorithm In mathematics and computer science, an algorithm () is a finite sequence of Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific ...
*
hybrid algorithm {{Unreferenced, date=May 2014 A hybrid algorithm is an algorithm that combines two or more other algorithms that solve the same problem, either choosing one based on some characteristic of the data, or switching between them over the course of the a ...
*
hyperedge This is a glossary of graph theory. Graph theory is the study of graphs, systems of nodes or vertices connected in pairs by lines or edges. Symbols A B ...
*
hypergraph In mathematics, a hypergraph is a generalization of a Graph (discrete mathematics), graph in which an graph theory, edge can join any number of vertex (graph theory), vertices. In contrast, in an ordinary graph, an edge connects exactly two vert ...


I

*
Identity function Graph of the identity function on the real numbers In mathematics, an identity function, also called an identity relation, identity map or identity transformation, is a function that always returns the value that was used as its argument, unc ...
* ideal merge * implication * implies *
implicit data structure In computer science, an implicit data structure or space-efficient data structure is a data structure that stores very little information other than the main or required data: a data structure that requires low overhead. They are called "implicit" ...
* in-branching *
inclusion–exclusion principle In combinatorics, the inclusion–exclusion principle is a counting technique which generalizes the familiar method of obtaining the number of elements in the union (set theory), union of two finite sets; symbolically expressed as : , A \cup B, ...
* inclusive or * incompressible string * incremental algorithm * in-degree *
independent set (graph theory) In graph theory, an independent set, stable set, coclique or anticlique is a set of vertices in a graph, no two of which are adjacent. That is, it is a set S of vertices such that for every two vertices in S, there is no edge connecting the t ...
*
index file A database index is a data structure that improves the speed of data retrieval operations on a database table at the cost of additional writes and storage space to maintain the index data structure. Indexes are used to quickly locate data withou ...
* information theoretic bound *
in-place algorithm In computer science, an in-place algorithm is an algorithm that operates directly on the input data structure without requiring extra space proportional to the input size. In other words, it modifies the input in place, without creating a separa ...
*
in-order traversal In computer science, tree traversal (also known as tree search and walking the tree) is a form of graph traversal and refers to the process of visiting (e.g. retrieving, updating, or deleting) each node in a tree data structure, exactly once. S ...
* in-place sort *
insertion sort Insertion sort is a simple sorting algorithm that builds the final sorted array (or list) one item at a time by comparisons. It is much less efficient on large lists than more advanced algorithms such as quicksort, heapsort, or merge sort. Howev ...
* instantaneous description * integer linear program * integer multi-commodity flow * integer polyhedron *
interactive proof system In computational complexity theory, an interactive proof system is an abstract machine that models computation as the exchange of messages between two parties: a ''prover'' and a ''verifier''. The parties interact by exchanging messages in order ...
* interface * interior-based representation *
internal node In computer science, a tree is a widely used abstract data type that represents a hierarchical tree structure with a set of connected Node (computer science), nodes. Each node in the tree can be connected to many children (depending on the type of ...
* internal sort * interpolation search * interpolation-sequential search * interpolation sort *
intersection (set theory) In set theory, the intersection of two Set (mathematics), sets A and B, denoted by A \cap B, is the set containing all elements of A that also belong to B or equivalently, all elements of B that also belong to A. Notation and terminology Int ...
* interval tree * intractable * introsort * introspective sort *
inverse Ackermann function In computability theory, the Ackermann function, named after Wilhelm Ackermann, is one of the simplest and earliest-discovered examples of a total computable function that is not primitive recursive. All primitive recursive functions are total ...
* inverted file index *
inverted index In computer science, an inverted index (also referred to as a postings list, postings file, or inverted file) is a database index storing a mapping from content, such as words or numbers, to its locations in a table, or in a document or a set of d ...
*
irreflexive In mathematics, a binary relation R on a set X is reflexive if it relates every element of X to itself. An example of a reflexive relation is the relation " is equal to" on the set of real numbers, since every real number is equal to itself. A ...
*
isomorphic In mathematics, an isomorphism is a structure-preserving mapping or morphism between two structures of the same type that can be reversed by an inverse mapping. Two mathematical structures are isomorphic if an isomorphism exists between the ...
*
iteration Iteration is the repetition of a process in order to generate a (possibly unbounded) sequence of outcomes. Each repetition of the process is a single iteration, and the outcome of each iteration is then the starting point of the next iteration. ...


J

* Jaro–Winkler distance * Johnson's algorithm * Johnson–Trotter algorithm * jump list * jump search


K

* Karmarkar's algorithm *
Karnaugh map A Karnaugh map (KM or K-map) is a diagram that can be used to simplify a Boolean algebra expression. Maurice Karnaugh introduced the technique in 1953 as a refinement of Edward W. Veitch's 1952 Veitch chart, which itself was a rediscovery of ...
* Karp–Rabin string-search algorithm * Karp reduction * k-ary heap * k-ary Huffman encoding * k-ary tree * k-clustering * k-coloring * k-connected graph * k-d-B-tree (not to be confused with bdk tree) * k-dimensional * K-dominant match *
k-d tree In computer science, a ''k''-d tree (short for ''k-dimensional tree'') is a space-partitioning data structure for organizing points in a ''k''-dimensional space. K-dimensional is that which concerns exactly k orthogonal axes or a space of any ...
* key * KMP * KmpSkip Search *
knapsack problem The knapsack problem is the following problem in combinatorial optimization: :''Given a set of items, each with a weight and a value, determine which items to include in the collection so that the total weight is less than or equal to a given lim ...
*
knight's tour A knight's tour is a sequence of moves of a knight on a chessboard such that the knight visits every square exactly once. If the knight ends on a square that is one knight's move from the beginning square (so that it could tour the board again im ...
* Knuth–Morris–Pratt algorithm * Königsberg bridges problem *
Kolmogorov complexity In algorithmic information theory (a subfield of computer science and mathematics), the Kolmogorov complexity of an object, such as a piece of text, is the length of a shortest computer program (in a predetermined programming language) that prod ...
* Kraft's inequality * Kripke structure *
Kruskal's algorithm Kruskal's algorithm finds a minimum spanning forest of an undirected edge-weighted graph. If the graph is connected, it finds a minimum spanning tree. It is a greedy algorithm that in each step adds to the forest the lowest-weight edge that ...
* kth order Fibonacci numbers * kth shortest path * kth smallest element * KV diagram * k-way merge * k-way merge sort * k-way tree


L

*
labeled graph In the mathematical discipline of graph theory, a graph labeling is the assignment of labels, traditionally represented by integers, to edges and/or vertices of a graph. Formally, given a graph , a vertex labeling is a function of to a set o ...
*
language Language is a structured system of communication that consists of grammar and vocabulary. It is the primary means by which humans convey meaning, both in spoken and signed language, signed forms, and may also be conveyed through writing syste ...
* last-in, first-out (LIFO) *
Las Vegas algorithm In computing, a Las Vegas algorithm is a randomized algorithm that always gives Correctness (computer science), correct results; that is, it always produces the correct result or it informs about the failure. However, the runtime of a Las Vegas alg ...
*
lattice (group) In geometry and group theory, a lattice in the real coordinate space \mathbb^n is an infinite set of points in this space with the properties that coordinate-wise addition or subtraction of two points in the lattice produces another lattice po ...
* layered graph * LCS *
leaf A leaf (: leaves) is a principal appendage of the plant stem, stem of a vascular plant, usually borne laterally above ground and specialized for photosynthesis. Leaves are collectively called foliage, as in "autumn foliage", while the leav ...
*
least common multiple In arithmetic and number theory, the least common multiple (LCM), lowest common multiple, or smallest common multiple (SCM) of two integers ''a'' and ''b'', usually denoted by , is the smallest positive integer that is divisible by both ''a'' and ...
(LCM) * leftist tree * left rotation * left-child right-sibling binary tree also termed ''first-child next-sibling binary tree'', ''doubly chained tree'', or ''filial-heir chain'' *
Lempel–Ziv–Welch Lempel–Ziv–Welch (LZW) is a universal lossless data compression algorithm created by Abraham Lempel, Jacob Ziv, and Terry Welch. It was published by Welch in 1984 as an improved implementation of the LZ78 algorithm published by Lem ...
(LZW) * level-order traversal * Levenshtein distance *
lexicographical order In mathematics, the lexicographic or lexicographical order (also known as lexical order, or dictionary order) is a generalization of the alphabetical order of the dictionaries to sequences of ordered symbols or, more generally, of elements of a ...
*
linear In mathematics, the term ''linear'' is used in two distinct senses for two different properties: * linearity of a '' function'' (or '' mapping''); * linearity of a '' polynomial''. An example of a linear function is the function defined by f(x) ...
*
linear congruential generator A linear congruential generator (LCG) is an algorithm that yields a sequence of pseudo-randomized numbers calculated with a discontinuous piecewise linear equation. The method represents one of the oldest and best-known pseudorandom number gener ...
* linear hash * linear insertion sort *
linear order In mathematics, a total order or linear order is a partial order in which any two elements are comparable. That is, a total order is a binary relation \leq on some set X, which satisfies the following for all a, b and c in X: # a \leq a ( ref ...
*
linear probing Linear probing is a scheme in computer programming for resolving hash collision, collisions in hash tables, data structures for maintaining a collection of Attribute–value pair, key–value pairs and looking up the value associated with a giv ...
* linear probing sort * linear product *
linear program Linear programming (LP), also called linear optimization, is a method to achieve the best outcome (such as maximum profit or lowest cost) in a mathematical model whose requirements and objective are represented by linear relationships. Linear ...
* linear quadtree *
linear search In computer science, linear search or sequential search is a method for finding an element within a list. It sequentially checks each element of the list until a match is found or the whole list has been searched. A linear search runs in linea ...
* link *
linked list In computer science, a linked list is a linear collection of data elements whose order is not given by their physical placement in memory. Instead, each element points to the next. It is a data structure consisting of a collection of nodes whi ...
*
list A list is a Set (mathematics), set of discrete items of information collected and set forth in some format for utility, entertainment, or other purposes. A list may be memorialized in any number of ways, including existing only in the mind of t ...
* list contraction *
little-o notation Big ''O'' notation is a mathematical notation that describes the limiting behavior of a function when the argument tends towards a particular value or infinity. Big O is a member of a family of notations invented by German mathematicians Pau ...
* Lm distance * load factor (computer science) * local alignment * local optimum *
logarithm In mathematics, the logarithm of a number is the exponent by which another fixed value, the base, must be raised to produce that number. For example, the logarithm of to base is , because is to the rd power: . More generally, if , the ...
,
logarithmic scale A logarithmic scale (or log scale) is a method used to display numerical data that spans a broad range of values, especially when there are significant differences among the magnitudes of the numbers involved. Unlike a linear Scale (measurement) ...
* longest common subsequence *
longest common substring Long may refer to: Measurement * Long, characteristic of something of great duration * Long, characteristic of something of great length * Longitude (abbreviation: long.), a geographic coordinate * Longa (music), note value in early music mens ...
* Lotka's law * lower bound * lower triangular matrix *
lowest common ancestor In graph theory and computer science, the lowest common ancestor (LCA) (also called least common ancestor) of two nodes and in a Tree (graph theory), tree or directed acyclic graph (DAG) is the lowest (i.e. deepest) node that has both and a ...
*
l-reduction In computer science, particularly the study of approximation algorithms, an L-reduction ("''linear reduction''") is a transformation of optimization problems which linearly preserves approximability features; it is one type of approximation-preserv ...


M

* Malhotra–Kumar–Maheshwari blocking flow ( ru.) *
Manhattan distance Taxicab geometry or Manhattan geometry is geometry where the familiar Euclidean distance is ignored, and the distance between two point (geometry), points is instead defined to be the sum of the absolute differences of their respective Cartesian ...
*
many-one reduction In computability theory and computational complexity theory, a many-one reduction (also called mapping reduction) is a reduction that converts instances of one decision problem (whether an instance is in L_1) to another decision problem (whether ...
*
Markov chain In probability theory and statistics, a Markov chain or Markov process is a stochastic process describing a sequence of possible events in which the probability of each event depends only on the state attained in the previous event. Informally ...
* marriage problem (see
assignment problem The assignment problem is a fundamental combinatorial optimization problem. In its most general form, the problem is as follows: :The problem instance has a number of ''agents'' and a number of ''tasks''. Any agent can be assigned to perform any t ...
) *
Master theorem (analysis of algorithms) Master, master's or masters may refer to: Ranks or titles In education: *Master (college), head of a college *Master's degree, a postgraduate or sometimes undergraduate degree in the specified discipline * Schoolmaster or master, presiding offic ...
* matched edge * matched vertex *
matching (graph theory) In the mathematical discipline of graph theory, a matching or independent edge set in an undirected Graph (discrete mathematics), graph is a set of Edge (graph theory), edges without common vertex (graph theory), vertices. In other words, a subse ...
*
matrix Matrix (: matrices or matrixes) or MATRIX may refer to: Science and mathematics * Matrix (mathematics), a rectangular array of numbers, symbols or expressions * Matrix (logic), part of a formula in prenex normal form * Matrix (biology), the m ...
* matrix-chain multiplication problem * max-heap property * maximal independent set * maximally connected component * Maximal Shift * maximum bipartite matching * maximum-flow problem * MAX-SNP *
Mealy machine In the theory of computation, a Mealy machine is a finite-state machine whose output values are determined both by its current state and the current inputs. This is in contrast to a Moore machine, whose output values are determined solely by its cu ...
*
mean A mean is a quantity representing the "center" of a collection of numbers and is intermediate to the extreme values of the set of numbers. There are several kinds of means (or "measures of central tendency") in mathematics, especially in statist ...
*
median The median of a set of numbers is the value separating the higher half from the lower half of a Sample (statistics), data sample, a statistical population, population, or a probability distribution. For a data set, it may be thought of as the “ ...
* meld (data structures) *
memoization In computing, memoization or memoisation is an optimization technique used primarily to speed up computer programs by storing the results of expensive function calls to pure functions and returning the cached result when the same inputs occur ag ...
*
merge algorithm Merge algorithms are a family of algorithms that take multiple sorted lists as input and produce a single list as output, containing all the elements of the inputs lists in sorted order. These algorithms are used as subroutines in various sorting ...
*
merge sort In computer science, merge sort (also commonly spelled as mergesort and as ) is an efficient, general-purpose, and comparison sort, comparison-based sorting algorithm. Most implementations of merge sort are Sorting algorithm#Stability, stable, wh ...
* Merkle tree *
meromorphic function In the mathematical field of complex analysis, a meromorphic function on an open subset ''D'' of the complex plane is a function that is holomorphic on all of ''D'' ''except'' for a set of isolated points, which are ''poles'' of the function. ...
*
metaheuristic In computer science and mathematical optimization, a metaheuristic is a higher-level procedure or heuristic designed to find, generate, tune, or select a heuristic (partial search algorithm) that may provide a sufficiently good solution to an op ...
*
metaphone Metaphone is a phonetic algorithm, published by Lawrence Philips in 1990, for indexing words by their English pronunciation. It fundamentally improves on the Soundex algorithm by using information about variations and inconsistencies in English s ...
* midrange *
Miller–Rabin primality test The Miller–Rabin primality test or Rabin–Miller primality test is a probabilistic primality test: an algorithm which determines whether a given number is likely to be prime, similar to the Fermat primality test and the Solovay–Strassen pr ...
* min-heap property * minimal perfect hashing *
minimum bounding box In geometry, the minimum bounding box or smallest bounding box (also known as the minimum enclosing box or smallest enclosing box) for a point set in dimensions is the box with the smallest measure (area, volume, or hypervolume in higher dime ...
(MBB) * minimum cut * minimum path cover *
minimum spanning tree A minimum spanning tree (MST) or minimum weight spanning tree is a subset of the edges of a connected, edge-weighted undirected graph that connects all the vertices together, without any cycles and with the minimum possible total edge weight. ...
* minimum vertex cut * mixed integer linear program * mode *
model checking In computer science, model checking or property checking is a method for checking whether a finite-state model of a system meets a given specification (also known as correctness). This is typically associated with hardware or software syst ...
*
model of computation In computer science, and more specifically in computability theory and computational complexity theory, a model of computation is a model which describes how an output of a mathematical function is computed given an input. A model describes how ...
* moderately exponential
MODIFIND
* monotone priority queue * monotonically decreasing * monotonically increasing *
Monte Carlo algorithm In computing, a Monte Carlo algorithm is a randomized algorithm whose output may be incorrect with a certain (typically small) probability. Two examples of such algorithms are the Karger–Stein algorithm and the Monte Carlo algorithm for mini ...
*
Moore machine In the theory of computation, a Moore machine is a finite-state machine whose current output values are determined only by its current state. This is in contrast to a Mealy machine, whose output values are determined both by its current state an ...
* Morris–Pratt * move (
finite-state machine A finite-state machine (FSM) or finite-state automaton (FSA, plural: ''automata''), finite automaton, or simply a state machine, is a mathematical model of computation. It is an abstract machine that can be in exactly one of a finite number o ...
transition) * move-to-front heuristic * move-to-root heuristic * multi-commodity flow *
multigraph In mathematics, and more specifically in graph theory, a multigraph is a graph which is permitted to have multiple edges (also called ''parallel edges''), that is, edges that have the same end nodes. Thus two vertices may be connected by mor ...
* multilayer grid file * multiplication method * multiprefix * multiprocessor model *
multiset In mathematics, a multiset (or bag, or mset) is a modification of the concept of a set that, unlike a set, allows for multiple instances for each of its elements. The number of instances given for each element is called the ''multiplicity'' of ...
* multi suffix tree * multiway decision * multiway merge * multiway search tree * multiway tree * Munkres' assignment algorithm


N

* naive string search * NAND * n-ary function * NC * NC many-one reducibility *
nearest neighbor search Nearest neighbor search (NNS), as a form of proximity search, is the optimization problem of finding the point in a given set that is closest (or most similar) to a given point. Closeness is typically expressed in terms of a dissimilarity function: ...
*
negation In logic, negation, also called the logical not or logical complement, is an operation (mathematics), operation that takes a Proposition (mathematics), proposition P to another proposition "not P", written \neg P, \mathord P, P^\prime or \over ...
* network flow (see
flow network In graph theory, a flow network (also known as a transportation network) is a directed graph where each edge has a capacity and each edge receives a flow. The amount of flow on an edge cannot exceed the capacity of the edge. Often in operations re ...
) *
network flow problem In combinatorial optimization, network flow problems are a class of computational problems in which the input is a flow network (a graph with numerical capacities on its edges), and the goal is to construct a flow, numerical values on each edge th ...
* next state *
NIST The National Institute of Standards and Technology (NIST) is an agency of the United States Department of Commerce whose mission is to promote American innovation and industrial competitiveness. NIST's activities are organized into physical s ...
*
node In general, a node is a localized swelling (a "knot") or a point of intersection (a vertex). Node may refer to: In mathematics * Vertex (graph theory), a vertex in a mathematical graph *Vertex (geometry), a point where two or more curves, lines ...
* nonbalanced merge * nonbalanced merge sort * nondeterministic *
nondeterministic algorithm In computer science and computer programming, a nondeterministic algorithm is an algorithm that, even for the same input, can exhibit different behaviors on different runs, as opposed to a deterministic algorithm. Different models of computation ...
*
nondeterministic finite automaton In automata theory, a finite-state machine is called a deterministic finite automaton (DFA), if * each of its transitions is ''uniquely'' determined by its source state and input symbol, and * reading an input symbol is required for each state tr ...
* nondeterministic finite-state machine (NFA) * nondeterministic finite tree automaton (NFTA) *
nondeterministic polynomial time In computational complexity theory, NP (nondeterministic polynomial time) is a complexity class used to classify decision problems. NP is the set of decision problems for which the problem instances, where the answer is "yes", have proofs ve ...
* nondeterministic tree automaton *
nondeterministic Turing machine In theoretical computer science, a nondeterministic Turing machine (NTM) is a theoretical model of computation whose governing rules specify more than one possible action when in some given situations. That is, an NTM's next state is ''not'' comp ...
* nonterminal node * nor * not * Not So Naive * NP *
NP-complete In computational complexity theory, NP-complete problems are the hardest of the problems to which ''solutions'' can be verified ''quickly''. Somewhat more precisely, a problem is NP-complete when: # It is a decision problem, meaning that for any ...
* NP-complete language *
NP-hard In computational complexity theory, a computational problem ''H'' is called NP-hard if, for every problem ''L'' which can be solved in non-deterministic polynomial-time, there is a polynomial-time reduction from ''L'' to ''H''. That is, assumi ...
* n queens * nullary function * null tree *
New York State Identification and Intelligence System The New York State Identification and Intelligence System Phonetic Code, commonly known as NYSIIS, is a phonetic algorithm devised in 1970 as part of the New York State Identification and Intelligence System (now a part of the New York State Divis ...
(NYSIIS)


O

*
objective function In mathematical optimization and decision theory, a loss function or cost function (sometimes also called an error function) is a function that maps an event or values of one or more variables onto a real number intuitively representing some "cost ...
* occurrence *
octree An octree is a tree data structure in which each internal node has exactly eight child node, children. Octrees are most often used to partition a three-dimensional space by recursive subdivision, recursively subdividing it into eight Octant (geo ...
* odd–even sort *
offline algorithm In computer science, an online algorithm is one that can process its input piece-by-piece in a serial fashion, i.e., in the order that the input is fed to the algorithm, without having the entire input available from the start. In contrast, an of ...
*
offset (computer science) In computer science, an offset within an array or other data structure object is an integer indicating the distance (displacement) between the beginning of the object and a given element or point, presumably within the same object. The concept ...
*
omega Omega (, ; uppercase Ω, lowercase ω; Ancient Greek ὦ, later ὦ μέγα, Modern Greek ωμέγα) is the twenty-fourth and last letter in the Greek alphabet. In the Greek numerals, Greek numeric system/isopsephy (gematria), it has a value ...
*
omicron Omicron (, ; uppercase Ο, lowercase ο, ) is the fifteenth letter of the Greek alphabet. This letter is derived from the Phoenician letter ayin: . In classical Greek, omicron represented the close-mid back rounded vowel in contrast to '' o ...
* one-based indexing * one-dimensional *
online algorithm In computer science, an online algorithm is one that can process its input piece-by-piece in a serial fashion, i.e., in the order that the input is fed to the algorithm, without having the entire input available from the start. In contrast, an of ...
*
open addressing Open addressing, or closed hashing, is a method of Hash table#Collision resolution, collision resolution in hash tables. With this method a hash collision is resolved by probing, or searching through alternative locations in the array (the ''prob ...
* optimal * optimal cost * optimal hashing * optimal merge * optimal mismatch * optimal polygon triangulation problem * optimal polyphase merge * optimal polyphase merge sort * optimal solution * optimal triangulation problem * optimal value *
optimization problem In mathematics, engineering, computer science and economics Economics () is a behavioral science that studies the Production (economics), production, distribution (economics), distribution, and Consumption (economics), consumption of goo ...
* or * oracle set * oracle tape * oracle Turing machine *
orders of approximation In science, engineering, and other quantitative disciplines, order of approximation refers to formal or informal expressions for how accurate an approximation is. Usage in science and engineering In formal expressions, the ordinal number used ...
* ordered array * ordered binary decision diagram (OBDD) * ordered linked list * ordered tree * order preserving hash * order preserving minimal perfect hashing * oriented acyclic graph * oriented graph * oriented tree * orthogonal drawing * orthogonal lists * orthogonally convex rectilinear polygon * oscillating merge sort * out-branching * out-degree * overlapping subproblems


P

* packing (see set packing) * padding argument * Pagoda (data structure), pagoda * pairing heap * PAM (point access method) * parallel computation thesis * parallel prefix computation * parallel random-access machine (PRAM) * parametric searching * parent * partial function * partially decidable problem * partially dynamic graph problem * partially ordered set * partially persistent data structure * partial order * partial recursive function * partition (set theory) * passive data structure * patience sorting * path (graph theory) * path cover * path system problem * Patricia tree * pattern * pattern element * P-complete * PCP theorem * Peano curve * Pearson's hashing * perfect binary tree * perfect hashing * perfect k-ary tree * perfect matching * shuffling, perfect shuffle * performance guarantee * performance ratio * permutation * persistent data structure * phonetic coding * pile (data structure) * pipelined divide and conquer * planar graph * planarization * planar straight-line graph * PLOP-hashing * point access method * pointer jumping * pointer machine * poissonization * polychotomy * polyhedron * polylogarithmic * polynomial * polynomial-time approximation scheme (PTAS) * polynomial hierarchy * polynomial time * polynomial-time
Church–Turing thesis In Computability theory (computation), computability theory, the Church–Turing thesis (also known as computability thesis, the Turing–Church thesis, the Church–Turing conjecture, Church's thesis, Church's conjecture, and Turing's thesis) ...
* polynomial-time reduction * polyphase merge * polyphase merge sort * polytope * poset * postfix traversal * Post machine (see Post–Turing machine) * postman's sort * postorder traversal * Post correspondence problem * potential function (see potential method) * Predicate (computer programming), predicate * Prefix (computer science), prefix * prefix code * prefix computation * prefix sum * prefix traversal * preorder traversal * primary clustering * primitive recursive * Prim's algorithm * principle of optimality * priority queue * prisoner's dilemma * Pseudorandom number generator, PRNG * probabilistic algorithm * probabilistically checkable proof * probabilistic Turing machine * probe sequence * Procedure (computer science) * process algebra * proper (see proper subset) * proper binary tree * proper coloring * proper subset * property list * prune and search * pseudorandom number generator * pth order Fibonacci numbers * P-tree * purely functional language * pushdown automaton (PDA) * pushdown transducer * p-way merge sort


Q

* qm sort * qsort * quadratic probing * quadtree * quadtree complexity theorem * quad trie * quantum computation * queue (data structure), queue * quicksort


R

* Rabin–Karp algorithm, Rabin–Karp string-search algorithm * radix quicksort * radix sort * ragged matrix * Raita algorithm * random-access machine * random number generation * randomization * randomized algorithm * randomized binary search tree * randomized complexity * randomized polynomial time * randomized rounding * randomized search tree * Randomized-Select * random number generator * random sampling * range (function) * range sort * Rank (graph theory) * Ratcliff/Obershelp pattern recognition * reachable * Self-balancing binary search tree, rebalance * recognizer * rectangular matrix * wikt: rectilinear, rectilinear * rectilinear Steiner tree * recurrence equations * recurrence relation * recursion * recursion termination * recursion tree * recursive (computer science) * recursive data structure * recursive doubling * recursive language * recursively enumerable language * recursively solvable * red–black tree * reduced basis * reduced digraph * reduced ordered binary decision diagram (ROBDD) * Reduction (complexity), reduction * reflexive relation * regular decomposition * rehashing * relation (mathematics) * relational structure * relative performance guarantee * Relaxation technique (mathematics), relaxation * relaxed balance * rescalable * restricted universe sort * result cache * Reverse Colussi * Reverse Factor * R-file * Rice's method * right rotation * right-threaded tree * root * root balance * rooted tree * rotate left * rotate right * rotation * rough graph * RP (complexity), RP * R+ tree, R+-tree * R* tree, R*-tree * R-tree * Run time (program lifecycle phase), run time


S

* saguaro stack * saturated edge * Self-balancing binary search tree, SBB tree * prefix sum, scan * scapegoat tree * search algorithm * search tree * search tree property * secant search * secondary clustering * memory segment * selection algorithm, select algorithm * select and partition * selection algorithm, selection problem * selection sort * selection algorithm, select kth element * select mode * loop (graph theory), self-loop * self-organizing heuristic * self-organizing list * self-organizing sequential search * semidefinite programming * separate chaining hashing * Planar separator theorem, separator theorem * sequential search * set (abstract data type), set * set cover problem, set cover * set packing * shadow heap * shadow merge * shadow merge insert * cocktail shaker sort, shaker sort * Shannon–Fano coding * shared memory * Shell sort * Shift-Or * Shor's algorithm * shortcutting * shortest common supersequence problem, shortest common supersequence * shortest common superstring * shortest path * shortest spanning tree * shuffle * shuffle sort * sibling * Sierpiński curve * Sierpinski triangle * sieve of Eratosthenes * sift up * signature * Simon's algorithm * simple merge * path (graph theory), simple path * simple uniform hashing * simplex communication * simulated annealing * simulation theorem * single-destination shortest-path problem * single-pair shortest-path problem * single program multiple data * single-source shortest-path problem * singly linked list * singularity analysis * sink * sinking sort * skd-tree * skew-symmetry * skip list * skip search * slope selection * Smith algorithm * Smith–Waterman algorithm * smoothsort * solvable problem * sort algorithm * sorted array * sorted list * in-place algorithm, sort in-place * sort merge * soundex * space-constructible function * spanning tree (mathematics), spanning tree * sparse graph * sparse matrix * sparsification * sparsity * spatial index, spatial access method * spectral test * splay tree * SPMD * square matrix * square root * SST (shortest spanning tree) * Numerical stability, stable * stack (data structure) * stack tree * star-shaped polygon * start state * state (computer science), state * state machine * state transition * static data structure * static Huffman encoding * s-t cut * st-digraph * Steiner minimum tree * Steiner tree problem, Steiner point * Steiner ratio * Steiner tree * Steiner vertex * Steinhaus–Johnson–Trotter algorithm * Stirling's approximation * Stirling's formula * stooge sort * straight-line drawing * strand sort * strictly decreasing * strictly increasing * strictly lower triangular matrix * strictly upper triangular matrix * string (computer science), string * string editing problem * string matching * string matching on ordered alphabets * string matching with errors * string matching with mismatches * string searching * strip packing * strongly connected component * strongly connected graph * strongly NP-hard * subadditive ergodic theorem * subgraph isomorphism * sublinear time algorithm * subsequence * subset *
substring In formal language theory and computer science, a substring is a contiguous sequence of characters within a string. For instance, "''the best of''" is a substring of "''It was the best of times''". In contrast, "''Itwastimes''" is a subsequenc ...
* subtree * succinct data structure * Suffix (computer science), suffix * suffix array * suffix automaton * suffix tree * superimposed code * superset * supersink * supersource * symmetric relation * symmetrically linked list * symmetric binary B-tree * symmetric set difference * symmetry breaking * symmetric min max heap


T

* tail * tail recursion * tango tree * target (CS), target * temporal logic * terminal (see Steiner tree) * leaf node, terminal node * ternary search * ternary search tree (TST) * text searching * theta * threaded binary tree * threaded tree * three-dimensional space, three-dimensional * three-way merge sort * three-way radix quicksort * time-constructible function * time/space complexity * top-down radix sort * top-down tree automaton * top-nodes algorithm, top-node * topological order * topological sort * topology tree * total function * totally decidable language * totally decidable problem * totally undecidable problem * total order * tour * Tournament (graph theory), tournament * towers of Hanoi * tractable problem * transducer * transition (see
finite-state machine A finite-state machine (FSM) or finite-state automaton (FSA, plural: ''automata''), finite automaton, or simply a state machine, is a mathematical model of computation. It is an abstract machine that can be in exactly one of a finite number o ...
) * transition function (of a
finite-state machine A finite-state machine (FSM) or finite-state automaton (FSA, plural: ''automata''), finite automaton, or simply a state machine, is a mathematical model of computation. It is an abstract machine that can be in exactly one of a finite number o ...
or Turing machine) * transitive relation * transitive closure * transitive reduction * transpose sequential search * travelling salesman problem (TSP) * treap * tree data structure, tree * tree automaton * tree contraction * tree editing problem * tree sort * tree transducer * tree traversal * triangle inequality * triconnected graph * trie * trinary function * tripartition * Turbo-BM * Turbo Reverse Factor * Turing machine * Turing reduction * Turing transducer * twin grid file * two-dimensional * two-level grid file * 2–3 tree * 2–3–4 tree * Two Way algorithm * two-way linked list * two-way merge sort


U

* unary function * unbounded knapsack problem (UKP) * uncomputable function * uncomputable problem * undecidable language * undecidable problem * undirected graph * uniform circuit complexity * uniform circuit family * uniform hashing * uniform matrix * union (computer science), union * union of automata * universal hashing * universal state (Turing), universal state * universal Turing machine * universe * unsolvable problem * unsorted list * upper triangular matrix


V

* van Emde Boas tree, van Emde Boas priority queue * vehicle routing problem * Veitch diagram * Venn diagram * vertex (graph theory), vertex * vertex coloring * vertex connectivity * vertex cover * vertical visibility map * virtual hashing * visibility map * visible (geometry) * Viterbi algorithm * VP-tree * VRP (vehicle routing problem)


W

* Glossary of graph theory#Walks, walk * weak cluster * weak-heap * weak-heap sort * weight-balanced tree * weighted, directed graph * weighted graph * window * witness * work-depth model * work-efficient * work-preserving * Best, worst and average case, worst case * Best, worst and average case, worst-case cost * worst-case minimum access * Xiaolin Wu's line algorithm, Wu's line algorithm


X

* Xiaolin Wu's line algorithm * xor * Xor filter


Y

* Yule–Simon distribution


Z

* Zeller's congruence * 0-ary function * 0-based indexing * 0/1 knapsack problem * Zhu–Takaoka string matching algorithm * Zipfian distribution * Zipf's law * Zipper (data structure) * Zip tree * ZPP (complexity), ZPP


References

{{DEFAULTSORT:Algorithms Lists of computer terms, Algorithms and data structures Mathematics-related lists, Algorithms and data structures Algorithms and data structures,