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 sci ...
. 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 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 ...
*
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 In computer science, adaptive heap sort is a comparison-based sorting algorithm of the adaptive sort family. It is a variant of heap sort that performs better when the data contains existing order. Published by Christos Levcopoulos and Ola Pete ...
*
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 Computational problem, problems or to perform a computation. Algorithms are used as specificat ...
* 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 syll ...
*
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 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 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 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 whom ...
*
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 The American National Standards Institute (ANSI ) is a private non-profit organization that oversees the development of voluntary consensus standards for products, services, processes, systems, and personnel in the United States. The organi ...
(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\, \text ...
* AP * Apostolico–Crochemore *
Apostolico–Giancarlo algorithm In computer science, the Apostolico–Giancarlo algorithm is a variant of the Boyer–Moore string-search algorithm, the basic application of which is searching for occurrences of a pattern P in a text T. As with other comparison-based string searc ...
* 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 solu ...
* 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 In computer science, best, worst, and average cases of a given algorithm express what the resource usage is ''at least'', ''at most'' and ''on average'', respectively. Usually the resource being considered is running time, i.e. time complexity, b ...
* 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 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 ass ...


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 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 ...
*
balanced merge sort In computer science, merge sort (also commonly spelled as mergesort) is an efficient, general-purpose, and comparison-based sorting algorithm. Most implementations produce a stable sort, which means that the order of equal elements is the same i ...
*
balanced multiway merge In telecommunications and professional audio, a balanced line or balanced signal pair is a circuit consisting of two conductors of the same type, both of which have equal impedances along their lengths and equal impedances to ground and to other ...
*
balanced multiway tree In telecommunications and professional audio, a balanced line or balanced signal pair is a circuit consisting of two conductors of the same type, both of which have equal impedances along their lengths and equal impedances to ground and to other ...
* 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 is ...
*
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 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 bu ...
*
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 Land ...
* binary function *
binary GCD algorithm The binary GCD algorithm, also known as Stein's algorithm or the binary Euclidean algorithm, is an algorithm that computes the greatest common divisor of two nonnegative integers. Stein's algorithm uses simpler arithmetic operations than the conv ...
*
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 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 ...
*
binary relation In mathematics, a binary relation associates elements of one set, called the ''domain'', with elements of another set, called the ''codomain''. A binary relation over Set (mathematics), sets and is a new set of ordered pairs consisting of ele ...
*
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 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 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 t ...
*
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 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), whic ...
*
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 Bintree is a village and civil parish in Norfolk, England, about nine miles (14 km) south-east of Fakenham. According to the 2001 census it had a population of 300, increasing to 329 at the 2011 Census. For the purposes of local government ...
* 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 con ...
*
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 A tree automaton is a type of state machine. Tree automata deal with tree structures, rather than the strings of more conventional state machines. The following article deals with branching tree automata, which correspond to regular languages ...
* boundary-based representation *
bounded error probability in polynomial time 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 b ...
* 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 Bradford's law is a pattern first described by Samuel C. Bradford in 1934 that estimates the exponentially diminishing returns of searching for references in science journals. One formulation is that if journals in a field are sorted by number of ...
*
branch A branch, sometimes called a ramus in botany, is a woody structural member connected to the central trunk (botany), trunk of a tree (or sometimes a shrub). Large branches are known as boughs and small branches are known as twigs. The term '' ...
(as in control flow) *
branch A branch, sometimes called a ramus in botany, is a woody structural member connected to the central trunk (botany), trunk of a tree (or sometimes a shrub). Large branches are known as boughs and small branches are known as twigs. The term '' ...
(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 soluti ...
*
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 A brick is a type of block used to build walls, pavements and other elements in masonry construction. Properly, the term ''brick'' denotes a block composed of dried clay, but is now also used informally to denote other chemically cured cons ...
*
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 (geometry), cylinder or Truncation (geometry), truncated Cone (geometry), cone or square, with an open top and a flat bottom, attached to a semicircular carrying handle (grip), handle called ...
* 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 A Byzantine fault (also Byzantine generals problem, interactive consistency, source congruency, error avalanche, Byzantine agreement problem, and Byzantine failure) is a condition of a computer system, particularly distributed computing systems, ...


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 A candidate, or nominee, is the prospective recipient of an award or honor, or a person seeking or being considered for some kind of position; for example: * to be election, elected to an official, office — in this case a Preselection, candida ...
* candidate verification *
canonical complexity class In computational complexity theory, a complexity class is a set of computational problems of related resource-based complexity. The two most commonly analyzed resources are time and memory. In general, a complexity class is defined in terms of ...
* 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 ob ...
* 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) Chaining is a type of intervention that aims to create associations between behaviors in a behavior chain. A behavior chain is a sequence of behaviors that happen in a particular order where the outcome of the previous step in the chain serves as ...
*
child A child ( : children) is a human being between the stages of birth and puberty, or between the developmental period of infancy and puberty. The legal definition of ''child'' generally refers to a minor, otherwise known as a person younger ...
*
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 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, 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 * Church–Turing thesis * digital circuit, circuit * circuit complexity * circuit value problem * circular list * circular queue * Clique (graph theory), clique * clique problem * clustering (see hash table) * clustering free * coalesced hashing * coarsening * cocktail shaker sort * codeword * coding tree * collective recursion * Hash collision, collision * collision resolution scheme * Colussi * combination * comb sort * Communicating Sequential Processes * commutative * compact DAWG * compact trie * comparison sort * competitive analysis (online algorithm), competitive analysis * competitive ratio * complement (set theory), complement * complete binary tree * complete graph * completely connected graph * complete tree * complexity * complexity class * computable * concave function * concurrent flow * concurrent read, concurrent write * concurrent read, exclusive write * computer configuration, configuration * confluently persistent data structure * Logical conjunction, conjunction * connected component (graph theory), connected components * connected graph * co-NP * constant function * continuous knapsack problem * Cook reduction * Cook's theorem * counting sort * Cover (set theory), covering * CRCW * Crew (algorithm) * critical path problem * Communicating sequential processes, CSP (communicating sequential processes) * Constraint satisfaction problem, CSP (constraint satisfaction problem) * Computational tree logic, CTL * cuckoo hashing * cut (graph theory) * cut (logic programming) * cutting plane * cutting stock problem * cutting theorem * cut vertex * cycle sort * cyclic redundancy check (CRC)


D

* D-adjacent * DAG shortest paths * Damerau–Levenshtein distance * data structure * Decidability (logic), decidable * decidable language * Decimation (signal processing), decimation * decision problem * decision tree * decomposable searching problem * Degree (disambiguation)#In mathematics, degree * dense graph * depoissonization * depth-limited search, depth * depth-first search (DFS) * deque * derangement * descendant (see tree structure) * Deterministic algorithm, deterministic * deterministic algorithm * deterministic finite automata string search * deterministic finite automaton (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 * dichotomic search * dictionary (data structure) * diet (see ''discrete interval encoding tree'' below) * difference (set theory) * digital search tree * digital tree * Directed graph, digraph * Dijkstra's algorithm * diminishing increment sort * dining philosophers * direct chaining hashing * directed acyclic graph (DAG) * directed acyclic word graph (disambiguation), directed acyclic word graph (DAWG) * directed graph * discrete interval encoding tree * discrete p-center * disjoint set * disjunction * distributed algorithm * distributional complexity * distribution sort * divide-and-conquer algorithm * divide and marriage before conquest * division method * data domain * don't-care term * Doomsday rule * double-direction bubble sort * double-ended priority queue * double hashing * double left rotation * Double Metaphone * double right rotation * double-ended queue * doubly linked list * dragon curve * dual graph * dual linear program * dyadic tree * dynamic array * dynamic data structure * dynamic hashing * dynamic programming * dynamization transformation


E

* Glossary of graph theory#Basics, edge * eb tree (elastic binary tree) * edge coloring * edge connectivity * edge crossing * edge-weighted graph * edit distance * edit operation * edit script * 8 queens * elastic-bucket trie * element uniqueness * end-of-string * epidemic algorithm * Euclidean algorithm * Euclidean distance * Euclidean Steiner tree * Euclidean traveling salesman problem * Euclid's algorithm * Euler cycle * Eulerian graph * Eulerian path * exact string matching * EXCELL (extendible cell) * exchange sort * exclusive or * exclusive read, concurrent write (ERCW) * exclusive read, exclusive write (EREW) * exhaustive search * existential state * expandable hashing * expander graph * exponential (disambiguation), exponential * extended binary tree * extended Euclidean algorithm * extended k-d tree * extendible hashing * external index * external memory algorithm * external memory data structure * external merge * external merge sort * external node * external quicksort * external radix sort * external sort * extrapolation search * extremal * extreme point


F

* facility location * factor (see substring) * factorial * fast fourier transform (FFT) * fathoming * feasible region * feasible solution * feedback edge set * feedback vertex set * Ferguson–Forcade algorithm * Fibonacci number * Fibonacci search * Fibonacci tree * Fibonacci heap * Find (Unix), Find * find kth least element * finitary tree * finite Fourier transform (discrete Fourier transform) * finite state automaton * finite-state machine * finite state machine minimization * finite-state transducer * first come, first served * fIFO (computing and electronics), first-in, first-out (FIFO) * fixed-grid method * flash sort * Flow (mathematics), flow * flow conservation * flow function * flow network * Floyd–Warshall algorithm * Bellman–Ford algorithm, Ford–Bellman algorithm * Ford–Fulkerson algorithm * Forest (graph theory), forest * forest editing problem * formal language * formal methods * formal verification * forward index * fractal * fractional knapsack problem * fractional solution * free edge * free list * 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) * function (mathematics) * functional data structure


G

* Galil–Giancarlo * Galil–Seiferas * gamma function * GBD-tree * geometric optimization problem * global optimum * gnome sort * goobi * Graph (data structure), graph * graph coloring * graph concentration * graph drawing * graph isomorphism * graph partition * Gray code * greatest common divisor (GCD) * greedy algorithm * greedy heuristic * grid drawing * grid file * Grover's algorithm


H

* halting problem * Hamiltonian cycle * Hamiltonian path * Hamming distance * Dragon curve, Harter–Highway dragon * hash function * hash heap * hash table * hash table delete * Hausdorff distance * hB-tree * head * heap (data structure), heap * heapify * heap property * heapsort * heaviest common subsequence * height * height-balanced binary search tree * height-balanced tree * heuristic * hidden Markov model * highest common factor * Hilbert curve * 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 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) * 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 * 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) * transition function (of a finite-state machine 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:数据结构与算法列表