List of terms relating to algorithms and data structures
   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 physical s ...
. 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 The following is a list of well-known algorithms along with one-line descriptions for each. Automated planning Combinatorial algorithms General combinatorial algorithms * Brent's algorithm: finds a cycle in function value iterations using on ...
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, 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. An abstract data type is defined by its behavior (semantics) from the point of view of a ''user'', of the data, specifically in terms of possible values, pos ...
(ADT) * (a,b)-tree * accepting state *
Ackermann's 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 ...
* 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 ve ...
* adaptive heap sort *
adaptive Huffman coding Adaptive Huffman coding (also called Dynamic Huffman coding) is an adaptive coding technique based on Huffman coding In computer science and information theory, a Huffman code is a particular type of optimal prefix code that is commonly used fo ...
* adaptive k-d tree *
adaptive sort A sorting algorithm falls into the adaptive sort family if it takes advantage of existing order in its input. It benefits from the presortedness in the input sequence – or a limited amount of disorder for various definitions of measures of disord ...
* 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 is ...
representation *
adjacency matrix In graph theory and computer science, an adjacency matrix is a square matrix used to represent a finite graph. The elements of the matrix indicate whether pairs of vertices are adjacent or not in the graph. In the special case of a finite simp ...
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 Judeo-Christian religion Entertainment Fiction * Adversary (comics), villain fro ...
*
algorithm In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
* 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. An algorithm must be analyzed to determine its resource usage, and the efficiency of an algo ...
* algorithmically solvable *
algorithm V Adaptive Huffman coding (also called Dynamic Huffman coding) is an adaptive coding technique based on Huffman coding. It permits building the code as the symbols are being transmitted, having no initial knowledge of source distribution, that allows ...
*
all pairs shortest path In graph theory, the shortest path problem is the problem of finding a path between two vertices (or nodes) in a graph such that the sum of the weights of its constituent edges is minimized. The problem of finding the shortest path between ...
*
alphabet An alphabet is a standardized set of basic written graphemes (called letters) that represent the phonemes of certain spoken languages. Not all writing systems represent language in this way; in a syllabary, each character represents a syllab ...
*
Alpha Skip Search algorithm Alpha (uppercase , lowercase ; grc, ἄλφα, ''álpha'', or ell, άλφα, álfa) is the first letter of the Greek alphabet. In the system of Greek numerals, it has a value of one. Alpha is derived from the Phoenician letter aleph , whic ...
*
alternating path Alternating may refer to: Mathematics * Alternating algebra, an algebra in which odd-grade elements square to zero * Alternating form, a function formula in algebra * Alternating group, the group of even permutations of a finite set * Alternati ...
* alternating Turing machine * alternation *
American flag sort An American flag sort is an efficient, in-place variant of radix sort that distributes items into buckets. Non-comparative sorting algorithms such as radix sort and American flag sort are typically used to sort large objects such as strings, for w ...
*
amortized cost In accounting, an economic item's historical cost is the original nominal monetary value of that item. Historical cost accounting involves reporting assets and liabilities at their historical costs, which are not updated for changes in the items' v ...
* ancestor *
and or AND may refer to: Logic, grammar, and computing * Conjunction (grammar), connecting two words, phrases, or clauses * Logical conjunction in mathematical logic, notated as "∧", "⋅", "&", or simple juxtaposition * Bitwise AND, a boolea ...
* American National Standards Institute (ANSI) *
antichain In mathematics, in the area of order theory, an antichain is a subset of a partially ordered set such that any two distinct elements in the subset are incomparable. The size of the largest antichain in a partially ordered set is known as its wid ...
*
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\, \t ...
* AP * Apostolico–Crochemore * Apostolico–Giancarlo algorithm * approximate string matching * approximation algorithm * arborescence *
arithmetic coding Arithmetic coding (AC) is a form of entropy encoding used in lossless data compression. Normally, a string of characters is represented using a fixed number of bits per character, as in the ASCII code. When a string is converted to arithmetic ...
*
array An array is a systematic arrangement of similar objects, usually in rows and columns. Things called an array include: {{TOC right Music * In twelve-tone and serial composition, the presentation of simultaneous twelve-tone sets such that the ...
*
array index In computer science, an array is a data structure consisting of a collection of ''elements'' (values or variables), each identified by at least one ''array index'' or ''key''. An array is stored such that the position of each element can be co ...
* array merging * array search *
articulation point Articulation may refer to: Linguistics * Articulatory phonetics, the study of how humans produce speech sounds via the interaction of physiological structures ** Manner of articulation, how speech organs involved in making a sound make contact * ...
*
A* search algorithm A* (pronounced "A-star") is a graph traversal and path search algorithm, which is used in many fields of computer science due to its completeness, optimality, and optimal efficiency. One major practical drawback is its O(b^d) space complexity, ...
*
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 ta ...
*
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 with ...
* associative *
associative array In computer science, an associative array, 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 mathematical terms an ...
*
asymptotically tight bound 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 Paul Bachmann, Edmund Lan ...
* asymptotic bound * asymptotic lower bound * asymptotic space complexity * asymptotic time complexity * asymptotic upper bound * augmenting path *
automaton An automaton (; plural: 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.Automaton – Definition and More ...
* 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. It was the first such data structure to be invented. In an AVL tree, the heights of the two child subtrees of any nod ...
* axiomatic semantics


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 d ...
* bag * Baillie–PSW primality test *
balanced binary search tree In computer science, a self-balancing binary search tree (BST) is any node-based binary search tree that automatically keeps its height (maximal number of levels below the root) small in the face of arbitrary item insertions and deletions.Donald ...
* balanced binary tree * balanced k-way merge sort * balanced merge sort * balanced multiway merge * balanced multiway tree * balanced quicksort *
balanced tree In computer science, a self-balancing binary search tree (BST) is any node-based binary search tree that automatically keeps its height (maximal number of levels below the root) small in the face of arbitrary item insertions and deletions.Donald ...
* balanced two-way merge sort *
BANG file A BANG file balanced and nested grid file) is a point access method which divides space into a nonperiodic grid. Each spatial dimension is divided by a linear hash. Cells may intersect, and points may be distributed between them. Another meaning ...
* 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 to all of the other vertices in a weighted digraph. It is slower than Dijkstra's algorithm for the same problem, but more versatile, as it i ...
*
Benford's law Benford's law, also known as the Newcomb–Benford law, the law of anomalous numbers, or the first-digit law, is an observation that in many real-life sets of numerical data, the leading digit is likely to be small.Arno Berger and Theodore ...
* best case * best-case cost * best-first search *
biconnected component In graph theory, a biconnected component (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. The blocks a ...
* 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 Paul Bachmann, Edmund Lan ...
* binary function * binary GCD algorithm *
binary heap A binary heap is a 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 for heapsort. A bin ...
* binary insertion sort * binary knapsack problem * binary priority queue * binary relation *
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 ...
*
binary search tree In computer science, a binary search tree (BST), also called an ordered or sorted binary tree, is a rooted binary tree data structure with the key of each internal node being greater than all the keys in the respective node's left subtree and ...
* binary tree *
binary tree representation of trees Binary may refer to: Science and technology Mathematics * Binary number, a representation of numbers using only two digits (0 and 1) * Binary function, a function that takes two arguments * Binary operation, a mathematical operation that ta ...
* bingo sort *
binomial heap In computer science, a binomial heap is a data structure that acts as a priority queue but also allows pairs of heaps to be merged. It is important as an implementation of the mergeable heap abstract data type (also called meldable heap), whi ...
* 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 ma ...
* bin sort * bintree * bipartite graph *
bipartite matching In the mathematical discipline of graph theory, a matching or independent edge set in an undirected graph is a set of edges without common vertices. Finding a matching in a bipartite graph can be treated as a network flow problem. Definit ...
* bisector * bitonic sort *
bit vector A bit array (also known as bitmask, bit map, bit set, bit string, or bit vector) is an array data structure that compactly stores bits. It can be used to implement a simple set data structure. A bit array is effective at exploiting bit-level p ...
* 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 * blossom (graph theory) *
bogosort In computer science, bogosort (also known as permutation sort, stupid sort, slowsort or bozosort) is a sorting algorithm based on the generate and test paradigm. The function successively generates permutations of its input until it finds one t ...
* boogol * boolean *
boolean expression In computer science, a Boolean 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 composed of a combination of the Boolean c ...
*
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 function ...
* bottleneck traveling salesman * bottom-up tree automaton * boundary-based representation * bounded error probability in polynomial time * bounded queue * bounded stack *
Bounding volume hierarchy A bounding volume hierarchy (BVH) is a tree structure on a set of geometric objects. All geometric objects, that form the leaf nodes of the tree, are wrapped in bounding volumes. These nodes are then grouped as small sets and enclosed within larg ...
, also referred to as bounding volume tree (BV-tree, BVT) * Boyer–Moore string-search algorithm *
Boyer–Moore–Horspool algorithm In computer science, the Boyer–Moore–Horspool algorithm or Horspool's algorithm is an algorithm for finding substrings in string (computer science), strings. It was published by Nigel Horspool in 1980 as SBM. It is a simplification of the Bo ...
*
bozo sort In computer science, bogosort (also known as permutation sort, stupid sort, slowsort or bozosort) is a sorting algorithm based on the generate and test paradigm. The function successively generates permutations of its input until it finds one t ...
* B+ tree *
BPP (complexity) In computational complexity theory, a branch of computer science, bounded-error probabilistic polynomial time (BPP) is the class of decision problems solvable by a probabilistic Turing machine in polynomial time with an error probability bounded by ...
* Bradford's law *
branch A branch, sometimes called a ramus in botany, is a woody structural member connected to the central trunk of a tree (or sometimes a shrub). Large branches are known as boughs and small branches are known as twigs. The term ''twig'' usually ...
(as in control flow) *
branch A branch, sometimes called a ramus in botany, is a woody structural member connected to the central trunk of a tree (or sometimes a shrub). Large branches are known as boughs and small branches are known as twigs. The term ''twig'' usually ...
(as in revision control) *
branch and bound Branch and bound (BB, B&B, or BnB) is an algorithm design paradigm for discrete and combinatorial optimization problems, as well as mathematical optimization. A branch-and-bound algorithm consists of a systematic enumeration of candidate solut ...
*
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 de ...
*
Bresenham's line algorithm Bresenham's line algorithm is a line drawing algorithm that determines the points of an ''n''-dimensional raster that should be selected in order to form a close approximation to a straight line between two points. It is commonly used to draw li ...
* brick sort *
bridge A bridge is a structure built to span a physical obstacle (such as a body of water, valley, road, or rail) without blocking the way underneath. It is constructed for the purpose of providing passage over the obstacle, which is usually somethi ...
*
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 enor ...
*
brute-force attack In cryptography, a brute-force attack consists of an attacker submitting many passwords or passphrases with the hope of eventually guessing correctly. The attacker systematically checks all possible passwords and passphrases until the correc ...
* brute-force search * brute-force string search * brute-force string search with mismatches * BSP-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 for ...
*
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 for ...
* bubble sort *
bucket A bucket is typically a watertight, vertical cylinder or truncated cone or square, with an open top and a flat bottom, attached to a semicircular carrying handle called the ''bail''. A bucket is usually an open-top container. In contrast, a ...
* bucket array * bucketing method *
bucket sort Bucket sort, or bin sort, is a sorting algorithm that works by distributing the elements of an array into a number of buckets. Each bucket is then sorted individually, either using a different sorting algorithm, or by recursively applying the b ...
* bucket trie *
buddy system The buddy system is a procedure in which two individuals, the "buddies", operate together as a single unit so that they are able to monitor and help each other. As per Merriam-Webster, the first known use of the phrase "buddy system" goes as far ...
* buddy tree * build-heap *
Burrows–Wheeler transform The Burrows–Wheeler transform (BWT, also called block-sorting compression) rearranges a character string into runs of similar characters. This is useful for compression, since it tends to be easy to compress a string that has runs of repeated c ...
(BWT) * busy beaver * Byzantine generals


C

* cactus stack * Calculus of Communicating Systems (CCS) *
calendar queue A calendar queue (CQ) is a priority queue (queue in which every element has associated priority and the dequeue operation removes the highest priority element). It is analogous to desk calendar, which is used by humans for ordering future events by ...
* candidate consistency testing * candidate verification * canonical complexity class * capacitated facility location * capacity * capacity constraint *
Cartesian tree In computer science, a Cartesian tree is a binary tree derived from a sequence of numbers; it can be uniquely defined from the properties that it is heap-ordered and that a symmetric (in-order) traversal of the tree returns the original sequence ...
* 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 Irishwoman Sarah Flannery, based on an unpublished work by Michael Purser, founder of Baltimore Technologies, a Dublin data security comp ...
* 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, tesse ...
*
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 surface of the figure. The same definition extends to any ...
* certificate *
chain (order theory) In mathematics, a total 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 ( reflexive) ...
* chaining (algorithm) * child *
Chinese postman problem In graph theory, a branch of mathematics and computer science, 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) undire ...
* Chinese remainder theorem * Christofides algorithm * Christofides heuristic *
chromatic index In graph theory, an edge coloring of a 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 coloring of a graph by the colors red, blu ...
*
chromatic number In graph theory, graph coloring is a special case of graph labeling; it is an assignment of labels traditionally called "colors" to elements of a graph subject to certain constraints. In its simplest form, it is a way of coloring the vertices ...
* Church–Turing 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 In computational complexity theory, a decision problem is P-complete ( complete for the complexity class P) if it is in P and every problem in P can be reduced to it by an appropriate reduction. The notion of P-complete decision problems is use ...
* circular list * circular queue *
clique A clique ( AusE, CanE, or ), in the social sciences, is a group of individuals who interact with one another and share similar interests. Interacting with cliques is part of normative social development regardless of gender, ethnicity, or popular ...
*
clique problem In computer science, the clique problem is the computational problem of finding cliques (subsets of vertices, all adjacent to each other, also called complete subgraphs) in a graph. It has several different formulations depending on which cli ...
* clustering (see
hash table In computing, a hash table, also known as hash map, is a data structure that implements an associative array or dictionary. It is an abstract data type that maps keys to values. A hash table uses a hash function to compute an ''index'', ...
) * clustering free *
coalesced hashing Coalesced hashing, also called coalesced chaining, is a strategy of collision resolution in a hash table that forms a hybrid of separate chaining In computing, a hash table, also known as hash map, is a data structure that implements an as ...
* coarsening *
cocktail shaker sort Cocktail shaker sort, also known as bidirectional bubble sort, cocktail sort, shaker sort (which can also refer to a variant of selection sort), ripple sort, shuffle sort, or shuttle sort, is an extension of bubble sort. The algorithm extends bub ...
*
codeword In communication, a code word is an element of a standardized code or protocol. Each code word is assembled in accordance with the specific rules of the code and assigned a unique meaning. Code words are typically used for reasons of reliability, ...
* 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 fo ...
*
collision resolution scheme In computing, a hash table, also known as hash map, is a data structure that implements an associative array or dictionary. It is an abstract data type that maps keys to values. A hash table uses a hash function to compute an ''index'', al ...
* 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 th ...
*
comb sort Comb sort is a relatively simple sorting algorithm originally designed by Włodzimierz Dobosiewicz and Artur Borowy in 1980, later rediscovered (and given the name "Combsort") by Stephen Lacey and Richard Box in 1991. Comb sort improves on bubble ...
*
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 ...
*
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. Most familiar as the name of ...
* compact DAWG * compact trie * comparison sort * competitive analysis * competitive ratio *
complement A complement is something that completes something else. Complement may refer specifically to: The arts * Complement (music), an interval that, when added to another, spans an octave ** Aggregate complementation, the separation of pitch-clas ...
*
complete binary tree In computer science, a binary tree is a k-ary k = 2 tree data structure in which each node has at most two children, which are referred to as the ' and the '. A recursive definition using just set theory notions is that a (non-empty) binary tr ...
*
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 is ...
* completely connected graph * complete tree * complexity *
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 spa ...
*
computable Computability is the ability to solve a problem in an effective manner. 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 close ...
* concave function * concurrent flow * concurrent read, concurrent write *
concurrent read, exclusive write In computer science, a parallel random-access machine (parallel RAM or PRAM) is a shared-memory abstract machine. As its name indicates, the PRAM is intended as the parallel-computing analogy to the random-access machine (RAM) (not to be confused ...
* configuration *
confluently persistent data structure In computing, a persistent data structure or not ephemeral data structure is a data structure that always preserves the previous version of itself when it is modified. Such data structures are effectively Immutable object, immutable, as their ope ...
*
conjunction Conjunction may refer to: * Conjunction (grammar), a part of speech * Logical conjunction, a mathematical operator ** Conjunction introduction, a rule of inference of propositional logic * Conjunction (astronomy), in which two astronomical bodies ...
* connected components *
connected graph In mathematics and computer science, connectivity is one of the basic concepts of graph theory: it asks for the minimum number of elements (nodes or edges) that need to be removed to separate the remaining nodes into two or more isolated subgrap ...
*
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 precisely ...
* constant function *
continuous knapsack problem In theoretical computer science, the continuous knapsack problem (also known as the fractional knapsack problem) is an algorithmic problem in combinatorial optimization in which the goal is to fill a container (the "knapsack") with fractional amount ...
* Cook reduction * Cook's theorem *
counting sort In computer science, counting sort is an algorithm for sorting a collection of objects according to keys that are small positive integers; that is, it is an integer sorting algorithm. It operates by counting the number of objects that possess dis ...
* covering * CRCW * Crew (algorithm) * critical path problem * CSP (communicating sequential processes) * CSP (constraint satisfaction problem) * CTL *
cuckoo hashing Cuckoo hashing is a scheme in computer programming for resolving hash collisions of values of hash functions in a table, with worst-case constant lookup time. The name derives from the behavior of some species of cuckoo, where the cuckoo chick ...
*
cut (graph theory) In graph theory, a cut is a partition of the vertices of a graph into two disjoint subsets. Any cut determines a cut-set, the set of edges that have one endpoint in each subset of the partition. These edges are said to cross the cut. In a connec ...
*
cut (logic programming) The cut, in Prolog, is a goal, written as !, which always succeeds, but cannot be backtracked. Cuts can be used to prevent unwanted backtracking Backtracking is a class of algorithms for finding solutions to some computational problems, notabl ...
* cutting plane *
cutting stock problem In operations research, the cutting-stock problem is the problem of cutting standard-sized pieces of stock material, such as paper rolls or sheet metal, into pieces of specified sizes while minimizing material wasted. It is an optimization problem ...
* cutting theorem * cut vertex *
cycle sort Cycle sort is an in-place, unstable sorting algorithm, a comparison sort that is theoretically optimal in terms of the total number of writes to the original array, unlike any other in-place sorting algorithm. It is based on the idea that the pe ...
* cyclic redundancy check (CRC)


D

* D-adjacent * DAG shortest paths *
Damerau–Levenshtein distance In information theory and computer science, the Damerau–Levenshtein distance (named after Frederick J. Damerau and Vladimir I. Levenshtein.) is a string metric for measuring the edit distance between two sequences. Informally, the Damerau–Leve ...
* data structure * decidable *
decidable language In mathematics, logic and computer science, a formal language (a set of finite sequences of symbols taken from a fixed alphabet) is called recursive if it is a recursive subset of the set of all possible finite sequences over the alphabet of the ...
* 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 of the input values. An example of a decision problem is deciding by means of an algorithm wheth ...
* decision tree * decomposable searching problem * degree *
dense graph In mathematics, a dense graph is a graph in which the number of edges is close to the maximal number of edges (where every pair of vertices is connected by one edge). The opposite, a graph with only a few edges, is a sparse graph. The distinctio ...
* depoissonization * depth * depth-first search (DFS) *
deque In computer science, a double-ended queue (abbreviated to deque, pronounced ''deck'', like "cheque") 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). ...
*
derangement In combinatorial mathematics, a derangement is a permutation of the elements of a set, such that no element appears in its original position. In other words, a derangement is a permutation that has no fixed points. The number of derangements of ...
* 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 genera ...
) * deterministic *
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 far ...
*
deterministic finite automata string search In computer science, string-searching algorithms, sometimes called string-matching algorithms, are an important class of string algorithms that try to find a place where one or several string (computer science), strings (also called patterns) are f ...
*
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 autom ...
(DFA) *
deterministic finite state machine In the theory of computation, a branch of theoretical computer science, a deterministic finite automaton (DFA)—also known as Finite-state machine#Acceptors (recognizers), deterministic finite acceptor (DFA), deterministic finite-state machine ...
*
deterministic finite tree automaton A tree automaton is a type of state machine. Tree automata deal with tree structures, rather than the string (computer science), strings of more conventional state machines. The following article deals with branching tree automata, which correspo ...
*
deterministic pushdown automaton In automata theory, a deterministic pushdown automaton (DPDA or DPA) is a variation of the pushdown automaton. The class of deterministic pushdown automata accepts the deterministic context-free languages, a proper subset of context-free languages. ...
(DPDA) * deterministic tree automaton * Deutsch–Jozsa algorithm * DFS forest * DFTA *
diagonalization argument In set theory, Cantor's diagonal argument, also called the diagonalisation argument, the diagonal slash argument, the anti-diagonal argument, the diagonal method, and Cantor's diagonalization proof, was published in 1891 by Georg Cantor as a m ...
*
diameter In geometry, a diameter of a circle is any straight line segment that passes through the center of the circle and whose endpoints lie on the circle. It can also be defined as the longest chord of the circle. Both definitions are also valid fo ...
* dichotomic search * dictionary (data structure) * diet (see ''discrete interval encoding tree'' below) * difference (set theory) *
digital search tree Digital usually refers to something using discrete digits, often binary digits. Technology and computing Hardware *Digital electronics, electronic circuits which operate using digital signals **Digital camera, which captures and stores digital i ...
* digital tree * digraph *
Dijkstra's algorithm Dijkstra's algorithm ( ) is an algorithm for finding the shortest paths between nodes in a graph, which may represent, for example, road networks. It was conceived by computer scientist Edsger W. Dijkstra in 1956 and published three years ...
* 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 v ...
(DAG) * directed acyclic word graph (DAWG) *
directed graph In mathematics, and more specifically in graph theory, a directed graph (or digraph) is a graph that is made up of a set of vertices connected by directed edges, often called arcs. Definition In formal terms, a directed graph is an ordered pa ...
* discrete interval encoding tree * discrete p-center *
disjoint set In mathematics, two sets are said to be disjoint sets if they have no element in common. Equivalently, two disjoint sets are sets whose intersection is the empty set.. For example, and are ''disjoint sets,'' while and are not disjoint. A c ...
*
disjunction In logic, disjunction is a logical connective typically notated as \lor and read aloud as "or". For instance, the English language sentence "it is raining or it is snowing" can be represented in logic using the disjunctive formula R \lor S ...
*
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, scientific ...
* 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 dire ...
*
divide and marriage before conquest 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 direc ...
* 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, a d ...
*
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 The Doomsday rule, Doomsday algorithm or Doomsday method is an algorithm of determination of the day of the week for a given date. It provides a perpetual calendar because the Gregorian calendar moves in cycles of 400 years. The algorithm for ...
* double-direction bubble sort * double-ended priority queue * double hashing * 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, pronounced ''deck'', like "cheque") 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). ...
*
doubly linked list In computer science, a doubly linked list is a linked data structure that consists of a set of sequentially linked records called nodes. Each node contains three fields: two link fields (references to the previous and to the next node in the s ...
*
dragon curve A dragon curve is any member of a family of self-similar fractal curves, which can be approximated by recursive methods such as Lindenmayer systems. The dragon curve is probably most commonly thought of as the shape that is generated from repe ...
*
dual graph In the mathematical discipline of graph theory, the dual graph of a plane graph is a graph that has a vertex for each face of . The dual graph has an edge for each pair of faces in that are separated from each other by an edge, and a self-lo ...
*
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 becomes ...
* dyadic tree * dynamic array * dynamic data structure * dynamic hashing *
dynamic programming Dynamic programming is both a mathematical optimization method and a computer programming method. The method was developed by Richard Bellman in the 1950s and has found applications in numerous fields, from aerospace engineering to economics. ...
* 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 ...
* eb tree (elastic binary tree) *
edge coloring In graph theory, an edge coloring of a 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 coloring of a graph by the colors red, blu ...
* 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 strings (e.g., words) are to one another, that is measured by counting the minimum number of operations required to ...
* edit operation * edit script * 8 queens * elastic-bucket trie * element uniqueness * end-of-string * epidemic algorithm * Euclidean algorithm *
Euclidean distance In mathematics, the Euclidean distance between two points in Euclidean space is the length of a line segment between the two points. It can be calculated from the Cartesian coordinates of the points using the Pythagorean theorem, therefor ...
* Euclidean Steiner tree *
Euclidean traveling salesman problem The travelling salesman problem (also called the travelling salesperson problem or TSP) asks the following question: "Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each cit ...
*
Euclid's 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 an ef ...
*
Euler cycle In graph theory, an Eulerian trail (or Eulerian path) is a trail in a finite graph that visits every edge exactly once (allowing for revisiting vertices). Similarly, an Eulerian circuit or Eulerian cycle is an Eulerian trail that starts and ends ...
*
Eulerian graph In graph theory, an Eulerian trail (or Eulerian path) is a trail in a finite graph that visits every edge exactly once (allowing for revisiting vertices). Similarly, an Eulerian circuit or Eulerian cycle is an Eulerian trail that starts and ends ...
*
Eulerian path In graph theory, an Eulerian trail (or Eulerian path) is a trail in a finite graph that visits every edge exactly once (allowing for revisiting vertices). Similarly, an Eulerian circuit or Eulerian cycle is an Eulerian trail that starts and ends ...
* exact string matching * EXCELL ( extendible cell) * exchange sort *
exclusive or Exclusive or or exclusive disjunction is a logical operation that is true if and only if its arguments differ (one is true, the other is false). It is symbolized by the prefix operator J and by the infix operators XOR ( or ), EOR, EXOR, , ...
* exclusive read, concurrent write (ERCW) * exclusive read, exclusive write (EREW) *
exhaustive 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 systematically enumerating all possible candidates for the soluti ...
* 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 applica ...
*
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 *Expo ...
* extended binary tree * extended Euclidean algorithm * 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). Thi ...
* 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 da ...
* external memory data structure * external merge * external merge sort *
external node In computer science, a tree is a widely used abstract data type that represents a hierarchical tree structure with a set of connected nodes. Each node in the tree can be connected to many children (depending on the type of tree), but must be con ...
* external quicksort * external radix sort *
external sort External sorting is a class of sorting algorithms that can handle massive amounts of data. External sorting is required when the data being sorted do not fit into the main memory of a computing device (usually RAM) and instead they must reside in ...
* extrapolation search * extremal *
extreme point In mathematics, an extreme point of a convex set S in a real or complex vector space is a point in S which does not lie in any open line segment joining two points of S. In linear programming problems, an extreme point is also called vertex ...


F

*
facility location Facility location is a name given to several different problems in computer science and in game theory Game theory is the study of mathematical models of strategic interactions among rational agents. Myerson, Roger B. (1991). ''Game Theory: A ...
* 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 * fast fourier transform (FFT) * fathoming *
feasible region In mathematical optimization, a feasible region, feasible set, search space, 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, potent ...
* feasible solution * feedback edge set *
feedback vertex set In the mathematical discipline of graph theory, a feedback vertex set (FVS) of a graph is a set of vertices whose removal leaves a graph without cycles ("removal" means deleting the vertex and all edges adjacent to it). Equivalently, each FVS conta ...
* Ferguson–Forcade algorithm *
Fibonacci number In mathematics, the Fibonacci numbers, commonly denoted , form a sequence, the Fibonacci sequence, in which each number is the sum of the two preceding ones. The sequence commonly starts from 0 and 1, although some authors start the sequence from ...
* Fibonacci search * Fibonacci tree *
Fibonacci heap In computer science, a Fibonacci heap is a data structure for priority queue operations, consisting of a collection of heap-ordered trees. It has a better amortized running time than many other priority queue data structures including the binar ...
*
Find Find, FIND or Finding may refer to: Computing * find (Unix), a command on UNIX platforms * find (Windows), a command on DOS/Windows platforms Books * ''The Find'' (2010), by Kathy Page * ''The Find'' (2014), by William Hope Hodgson Film and t ...
* 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 samples of a function into a same-length sequence of equally-spaced samples of the discrete-time Fourier transform (DTFT), which is a comple ...
) *
finite state automaton 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 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 Queueing theory is the mathematical study of waiting lines, or queues. A queueing model is constructed so that queue lengths and waiting time can be predicted. Queueing theory is generally considered a branch of operations research because the ...
*
first-in, first-out Representation of a FIFO queue In computing and in systems theory, FIFO is an acronym for first in, first out (the first in is the first out), a method for organizing the manipulation of a data structure (often, specifically a data buffer) where ...
(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 p ...
* Ford–Bellman algorithm * Ford–Fulkerson algorithm *
forest A forest is an area of land dominated by trees. Hundreds of definitions of forest are used throughout the world, incorporating factors such as tree density, tree height, land use, legal standing, and ecological function. The United Nations' ...
* forest editing problem *
formal language In logic, mathematics, computer science, and linguistics, a formal language consists of words whose letters are taken from an alphabet and are well-formed according to a specific set of rules. The alphabet of a formal language consists of sy ...
*
formal methods In computer science, formal methods are mathematically rigorous techniques for the specification, development, and verification of software and hardware systems. The use of formal methods for software and hardware design is motivated by the exp ...
*
formal verification In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal met ...
* forward index * fractal * 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 n ...
*
free tree In graph theory, a tree is an undirected graph in which any two vertices are connected by ''exactly one'' path, or equivalently a connected acyclic undirected graph. A forest is an undirected graph in which any two vertices are connected by '' ...
* 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 or subroutine is a sequence of program instructions that performs a specific task, packaged as a unit. This unit can then be used in programs wherever that particular task should be performed. Functions may ...
*
function (mathematics) In mathematics, a function from a set to a set assigns to each element of exactly one element of .; the words map, mapping, transformation, correspondence, and operator are often used synonymously. The set is called the domain of the functi ...
* functional data structure


G

* Galil–Giancarlo * Galil–Seiferas *
gamma function In mathematics, the gamma function (represented by , the capital letter gamma from the Greek alphabet) is one commonly used extension of the factorial function to complex numbers. The gamma function is defined for all complex numbers except ...
* GBD-tree * geometric optimization problem *
global optimum In mathematical analysis, the maxima and minima (the respective plurals of maximum and minimum) of a function, known collectively as extrema (the plural of extremum), are the largest and smallest value of the function, either within a given ra ...
* gnome sort *
goobi Goobi (Abbr. of ''Göttingen online-objects binaries'') is an open-source software suite intended to support mass digitisation projects for cultural heritage institutions. The software implements international standards such as METS, MODS and ot ...
*
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 discre ...
* graph coloring * 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 graphs arising from applications such as social network analysis, car ...
*
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) ar ...
*
graph partition In mathematics, a graph partition is the reduction of a graph to a smaller graph by partitioning its set of nodes into mutually exclusive groups. Edges of the original graph that cross between the groups will produce edges in the partitioned grap ...
* Gray code *
greatest common divisor In mathematics, the greatest common divisor (GCD) of two or more integers, which are not all zero, is the largest positive integer that divides each of the integers. For two integers ''x'', ''y'', the greatest common divisor of ''x'' and ''y'' is ...
(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 * grid drawing *
grid file In computer science, a grid file or bucket grid is a point access method which splits a space into a non-periodic grid where one or more cells of the grid refer to a small set of points. Grid files (a symmetric data structure) provide an efficient ...
*
Grover's algorithm In quantum computing, Grover's algorithm, also known as the quantum search algorithm, refers to a quantum algorithm for unstructured search that finds with high probability the unique input to a black box function that produces a particular output ...


H

*
halting problem In 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 forever. Alan Turing proved in 1936 that a ...
*
Hamiltonian cycle 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 vertex ...
*
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 vertex ...
*
Hamming distance In information theory, the Hamming distance between two strings of equal length is the number of positions at which the corresponding symbols are different. In other words, it measures the minimum number of ''substitutions'' required to chan ...
* Harter–Highway dragon *
hash function A hash function is any function that can be used to map data of arbitrary size to fixed-size values. The values returned by a hash function are called ''hash values'', ''hash codes'', ''digests'', or simply ''hashes''. The values are usually ...
* hash heap *
hash table In computing, a hash table, also known as hash map, is a data structure that implements an associative array or dictionary. It is an abstract data type that maps keys to values. A hash table uses a hash function to compute an ''index'', ...
* 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 compact subsets of a metric space into a me ...
* hB-tree * head * heap * heapify * heap property *
heapsort In computer science, heapsort is a comparison-based sorting algorithm. Heapsort can be thought of as an improved selection sort: like selection sort, heapsort divides its input into a sorted and an unsorted region, and it iteratively shrinks the ...
* 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 example, "The height of that building is 50 m" or "The height of an airplane in-flight is ab ...
* height-balanced binary search tree * height-balanced tree *
heuristic A heuristic (; ), or heuristic technique, is any approach to problem solving or self-discovery that employs a practical method that is not guaranteed to be optimal, perfect, or rational, but is nevertheless sufficient for reaching an immediate ...
*
hidden Markov model A hidden Markov model (HMM) is a statistical Markov model in which the system being modeled is assumed to be a Markov process — call it X — with unobservable ("''hidden''") states. As part of the definition, HMM requires that there be an o ...
* highest common factor *
Hilbert curve The Hilbert curve (also known as the Hilbert space-filling curve) is a continuous fractal space-filling curve first described by the German mathematician David Hilbert in 1891, as a variant of the space-filling Peano curves discovered by Giuseppe ...
* histogram sort * homeomorphic * horizontal visibility map * Huffman encoding * Hungarian algorithm * hybrid algorithm * hyperedge * hypergraph


I

* Identity function * ideal merge * material conditional, implication * implies operator, implies * in-branching * inclusion–exclusion principle * inclusive or * incompressible string * incremental algorithm * in-degree * independent set (graph theory) * index file * information theoretic bound * in-place algorithm * in-order traversal * in-place algorithm, in-place sort * insertion sort * instantaneous description * integer linear program * integer multi-commodity flow * integer polyhedron * interactive proof system * interface (computing), interface * interior-based representation * internal node * internal sort * interpolation search * interpolation-sequential search * interpolation sort * intersection (set theory) * interval tree * intractability (complexity), intractable * introsort * introspective sort * inverse Ackermann function * inverted file index * inverted index * irreflexive * isomorphic * iteration


J

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


K

* Karmarkar's algorithm * Karnaugh map * Rabin–Karp algorithm, 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 * Computer keyboard keys#Keys on a computer keyboard, key * Internet Security Association and Key Management Protocol, KMP * KmpSkip Search * knapsack problem * knight's tour * Knuth–Morris–Pratt algorithm * Seven Bridges of Königsberg, Königsberg bridges problem * Kolmogorov complexity * Kraft's inequality * Kripke structure * Kruskal's algorithm * 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 * language * LIFO (computing), last-in, first-out (LIFO) * Las Vegas algorithm * lattice (group) * layered graph * Laboratory for Computer Science, LCS * leaf * least common multiple (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 (LZW) * level-order traversal * Levenshtein distance * lexicographical order * linear * linear congruential generator * linear hash * linear insertion sort * linear order * linear probing * linear probing sort * linear product * linear program * linear quadtree * linear search * Reference (computer science), link * linked list * List (computing), list * list contraction * little-o notation * Lm distance * load factor (computer science) * local alignment * local optimum * logarithm, logarithmic scale * longest common subsequence * longest common substring * Lotka's law * lower bound * lower triangular matrix * lowest common ancestor * l-reduction


M

* Malhotra–Kumar–Maheshwari blocking flow (:ru:Алгоритм Малхотры — Кумара — Махешвари, ru.) * Manhattan distance * many-one reduction * Markov chain * 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 ta ...
) * Master theorem (analysis of algorithms) * matched edge * matched vertex * matching (graph theory) * matrix (mathematics), matrix * 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 * mean * median * meld (data structures) * memoization * merge algorithm * merge sort * Merkle tree * meromorphic function * metaheuristic * metaphone * midrange * Miller–Rabin primality test * min-heap property * minimal perfect hashing * minimum bounding box (MBB) * minimum cut * minimum path cover * minimum spanning tree * minimum vertex cut * mixed integer linear program * Mode (statistics), mode * model checking * model of computation * moderately exponential
MODIFIND
* monotone priority queue * monotonically decreasing * monotonically increasing * Monte Carlo algorithm * Moore machine * 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 * multilayer grid file * multiplication method * multiprefix * multiprocessor model * multiset * multi suffix tree * multiway decision * multiway merge * multiway search tree * multiway tree * Munkres' assignment algorithm


N

* naive string search * logical nand, nand * n-ary function * NC (complexity), NC * NC many-one reducibility * nearest neighbor search * negation * 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 * next state * NIST * node (computer science), node * nonbalanced merge * nonbalanced merge sort * Indeterminacy in computation (disambiguation), nondeterministic * nondeterministic algorithm * nondeterministic finite automaton * nondeterministic finite-state machine (NFA) * nondeterministic finite tree automaton (NFTA) * NP (complexity), nondeterministic polynomial time * nondeterministic tree automaton * nondeterministic Turing machine * nonterminal node * logical nor, nor * negation, not * Not So Naive * NP (complexity), NP * NP-complete * NP-complete language * NP-hard * n queens * nullary function * null tree * New York State Identification and Intelligence System (NYSIIS)


O

* objective function * Occurrence (type–token distinction), occurrence * octree * odd–even sort * offline algorithm * offset (computer science) * omega * omicron * one-based indexing * one-dimensional * online algorithm * open addressing * Optimization (mathematics), 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 (mathematics), optimization problem * logical disjunction, or * oracle set * oracle tape * oracle Turing machine * orders of approximation * 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 * Phencyclidine, PCP * 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 * 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 * 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


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) * 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, zh:数据结构与算法列表