List of terms relating to algorithms and data structures
Encyclopedia
The NIST Dictionary of Algorithms and Data Structures is a reference work maintained by the U.S. National Institute of Standards and Technology
.
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 and list of data structures.
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:
National Institute of Standards and Technology
The National Institute of Standards and Technology , known between 1901 and 1988 as the National Bureau of Standards , is a measurement standards laboratory, otherwise known as a National Metrological Institute , which is a non-regulatory agency of the United States Department of Commerce...
.
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 and list of data structures.
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:
A
- absolute performance guarantee
- abstract data typeAbstract data typeIn computing, an abstract data type is a mathematical model for a certain class of data structures that have similar behavior; or for certain data types of one or more programming languages that have similar semantics...
(ADT) - (a,b)-tree(a,b)-treeIn computer science, an tree is a specific kind of search tree.An tree has all of its leaves at the same depth, and all internal nodes have between a and b children, where a and b are integers such that 2 \le a \le /2. The root may have as few as zero children.- Definition :Let a, b \in N such...
- accepting state
- Ackermann's function
- active data structure
- acyclic directed graph
- adaptive heap sortAdaptive heap sortThe adaptive heap sort is a sorting algorithm that is similar to heap sort, but uses a randomized binary search tree to structure the input according to any preexisting order. The randomized binary search tree is used to select candidates that are put into the heap, so the heap doesn't need to...
- adaptive Huffman codingAdaptive Huffman codingAdaptive 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 one-pass encoding and adaptation to changing conditions in data.The benefit of...
- adaptive k-d treeAdaptive k-d treeAn adaptive k-d tree is a tree for multidimensional points where successive levels may be split along different dimensions....
- adaptive sortAdaptive sortA 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 disorder – and sorts faster...
- address-calculation sort
- adjacency-list representation
- adjacency-matrix representation
- adjacentAdjacentAdjacent is an adjective meaning contiguous, adjoining or abuttingIn geometry, adjacent is when sides meet to make an angle.In graph theory adjacent nodes in a graph are linked by an edge....
- adversaryAdversary (online algorithm)In computer science, an online algorithm measures its competitiveness against different adversary models. For deterministic algorithms, the adversary is the same, the adaptive offline adversary...
- algorithmAlgorithmIn mathematics and computer science, an algorithm is an effective method expressed as a finite list of well-defined instructions for calculating a function. Algorithms are used for calculation, data processing, and automated reasoning...
- algorithm BSTWAlgorithm BSTWThe Algorithm BSTW is a data compression algorithm, named after its designers, Bentley, Sleator, Tarjan and Wei in 1986. BSTW is a dictionary-based algorithm that uses a move-to-front transform to keep recently-seen dictionary entries at the front of the dictionary...
- algorithm FGK
- algorithmic efficiencyAlgorithmic efficiencyIn computer science, efficiency is used to describe properties of an algorithm relating to how much of various types of resources it consumes. Algorithmic efficiency can be thought of as analogous to engineering productivity for a repeating or continuous process, where the goal is to reduce...
- algorithmically solvable
- algorithm V
- all pairs shortest path
- alphabet
- Alpha Skip Search algorithm
- alternating path
- alternating Turing machineAlternating Turing machineIn computational complexity theory, an alternating Turing machine is a non-deterministic Turing machine 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 sortAmerican flag sortAn american flag sort is an efficient, in-place variant of radix sort that distributes items into hundreds of buckets. Non-comparative sorting algorithms such as radix sort and american flag sort are typically used to sort large objects such as strings, for which comparison is not a unit-time...
- amortized cost
- ancestorAncestorAn ancestor is a parent or the parent of an ancestor ....
- andLogical conjunctionIn logic and mathematics, a two-place logical operator and, also known as logical conjunction, results in true if both of its operands are true, otherwise the value of false....
- ANSIAmerican National Standards InstituteThe American National Standards Institute 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 organization also coordinates U.S. standards with international...
- antichainAntichainIn mathematics, in the area of order theory, an antichain is a subset of a partially ordered set such that any two elements in the subset are incomparable. Let S be a partially ordered set...
- antisymmetric relationAntisymmetric relationIn mathematics, a binary relation R on a set X is antisymmetric if, for all a and b in Xor, equivalently,In mathematical notation, this is:\forall a, b \in X,\ R \and R \; \Rightarrow \; a = bor, equivalently,...
- APArithmetic progressionIn mathematics, an arithmetic progression or arithmetic sequence is a sequence of numbers such that the difference between the consecutive terms is constant...
- Apostolico–Crochemore
- Apostolico–Giancarlo algorithm
- approximate string matchingApproximate string matchingIn computing, approximate string matching is the technique of finding strings that match a pattern approximately...
- approximation algorithmApproximation algorithmIn computer science and operations research, approximation algorithms are algorithms used to find approximate solutions to optimization problems. Approximation algorithms are often associated with NP-hard problems; since it is unlikely that there can ever be efficient polynomial time exact...
- arborescenceArborescence (graph theory)In graph theory, an arborescence is a directed graph in which, for a vertex u called the root and any other vertex v, there is exactly one directed path from u to v....
- arithmetic codingArithmetic codingArithmetic coding is a form of variable-length entropy encoding used in lossless data compression. Normally, a string of characters such as the words "hello there" is represented using a fixed number of bits per character, as in the ASCII code...
- array
- array index
- array merging
- array search
- articulation point
- assignment problemAssignment problemThe assignment problem is one of the fundamental combinatorial optimization problems in the branch of optimization or operations research in mathematics...
- association listAssociation listIn computer programming and particularly in Lisp, an association list, often referred to as an alist, is a linked list in which each list element comprises a key and a value. The association list is said to associate the value with the key...
- associative
- associative arrayAssociative arrayIn computer science, an associative array is an abstract data type composed of a collection of pairs, such that each possible key appears at most once in the collection....
- asymptotically tight bound
- asymptotic bound
- asymptotic lower bound
- asymptotic space complexity
- asymptotic time complexity
- asymptotic upper bound
- augmenting path
- automatonAutomata theoryIn theoretical computer science, automata theory is the study of abstract machines and the computational problems that can be solved using these machines. These abstract machines are called automata...
- average case
- average-case cost
- AVL treeAVL treeIn computer science, an AVL tree is a self-balancing binary search tree, and it was the first such data structure to be invented. In an AVL tree, the heights of the two child subtrees of any node differ by at most one. Lookup, insertion, and deletion all take O time in both the average and worst...
- axiomatic semanticsAxiomatic semanticsAxiomatic semantics is an approach based on mathematical logic to proving the correctness of computer programs. It is closely related to Hoare logic....
B
- backtrackingBacktrackingBacktracking is a general algorithm for finding all solutions to some computational problem, that incrementally builds candidates to the solutions, and abandons each partial candidate c as soon as it determines that c cannot possibly be completed to a valid solution.The classic textbook example...
- bagMultisetIn mathematics, the notion of multiset is a generalization of the notion of set in which members are allowed to appear more than once...
- balanced binary search tree
- balanced binary tree
- balanced k-way merge sort
- balanced merge sort
- balanced multiway merge
- balanced multiway tree
- balanced quicksort
- balanced treeSelf-balancing binary search treeIn computer science, a self-balancing binary search tree is any node based binary search tree that automatically keeps its height small in the face of arbitrary item insertions and deletions....
- balanced two-way merge sort
- BANG fileBANG fileA BANG file is a point access method which divides space into a nonperiodic grid. Each spatial dimension is divided by a linear hash...
- Batcher sort
- Baum Welch algorithm
- BB α tree
- BDDBinary decision diagramIn the field of computer science, a binary decision diagram or branching program, like a negation normal form or a propositional directed acyclic graph , is a data structure that is used to represent a Boolean function. On a more abstract level, BDDs can be considered as a compressed...
- BD-tree
- Bellman–Ford algorithm
- Benford's lawBenford's lawBenford's law, also called the first-digit law, states that in lists of numbers from many real-life sources of data, the leading digit is distributed in a specific, non-uniform way...
- best case
- best-case cost
- best-first searchBest-first searchBest-first search is a search algorithm which explores a graph by expanding the most promising node chosen according to a specified rule.Judea Pearl described best-first search as estimating the promise of node n by a "heuristic evaluation function f which, in general, may depend on the description...
- biconnected componentBiconnected componentIn graph theory, a biconnected component is a maximal biconnected subgraph. Any connected graph decomposes into a tree of biconnected components called the block tree of the graph. The blocks are attached to each other at shared vertices called cut vertices or articulation points...
- biconnected graphBiconnected graphIn the mathematical discipline of graph theory, a biconnected graph is a connected graph with no articulation vertices.In other words, a biconnected graph is connected and nonseparable, meaning that if any vertex were to be removed, the graph will remain connected.The property of being 2-connected...
- bidirectional bubble sort
- big-O notation
- binary functionBinary functionIn mathematics, a binary function, or function of two variables, is a function which takes two inputs.Precisely stated, a function f is binary if there exists sets X, Y, Z such that\,f \colon X \times Y \rightarrow Z...
- binary GCD algorithmBinary GCD algorithmThe binary GCD algorithm, also known as Stein's algorithm, is an algorithm that computes the greatest common divisor of two nonnegative integers. It gains a measure of efficiency over the ancient Euclidean algorithm by replacing divisions and multiplications with shifts, which are cheaper when...
- binary heapBinary heapA binary heap is a heap data structure created using a binary tree. It can be seen as a binary tree with two additional constraints:*The shape property: the tree is a complete binary tree; that is, all levels of the tree, except possibly the last one are fully filled, and, if the last level of...
- binary insertion sort
- binary knapsack problem
- binary priority queue
- binary relationBinary relationIn mathematics, a binary relation on a set A is a collection of ordered pairs of elements of A. In other words, it is a subset of the Cartesian product A2 = . More generally, a binary relation between two sets A and B is a subset of...
- binary search
- binary search treeBinary search treeIn computer science, a binary search tree , which may sometimes also be called an ordered or sorted binary tree, is a node-based binary tree data structurewhich has the following properties:...
- binary treeBinary treeIn computer science, a binary tree is a tree data structure in which each node has at most two child nodes, usually distinguished as "left" and "right". Nodes with children are parent nodes, and child nodes may contain references to their parents. Outside the tree, there is often a reference to...
- binary tree representation of trees
- bingo sort
- binomial heapBinomial heapIn computer science, a binomial heap is a heap similar to a binary heap but also supports quickly merging two heaps. This is achieved by using a special tree structure...
- binomial tree
- bin packing problemBin packing problemIn computational complexity theory, the bin packing problem is a combinatorial NP-hard problem. In it, objects of different volumes must be packed into a finite number of bins of capacity V in a way that minimizes the number of bins used....
- bin sort
- bintreeBinary treeIn computer science, a binary tree is a tree data structure in which each node has at most two child nodes, usually distinguished as "left" and "right". Nodes with children are parent nodes, and child nodes may contain references to their parents. Outside the tree, there is often a reference to...
- bipartite graphBipartite graphIn the mathematical field of graph theory, a bipartite graph is a graph whose vertices can be divided into two disjoint sets U and V such that every edge connects a vertex in U to one in V; that is, U and V are independent sets...
- bipartite matching
- bisectorBisection methodThe bisection method in mathematics is a root-finding method which repeatedly bisects an interval and then selects a subinterval in which a root must lie for further processing. It is a very simple and robust method, but it is also relatively slow...
- bitonic sort
- bit vector
- Bk treeBk treeA BK-tree is a metric tree suggested by Walter Austin Burkhard and Robert M. Keller specifically adapted to discrete metric spaces.For simplicity, let us consider integer discrete metric d. Then, BK-tree is defined in the following way. An arbitrary element a is selected as root node. The root...
- block
- block addressing index
- blocking flow
- block search
- Bloom filterBloom filterA Bloom filter, conceived by Burton Howard Bloom in 1970, is a space-efficient probabilistic data structure that is used to test whether an element is a member of a set. False positives are possible, but false negatives are not; i.e. a query returns either "inside set " or "definitely not in set"...
- blossom (graph theory)
- bogosortBogosortIn computer science, bogosort is a particularly ineffective sorting algorithm based on the generate and test paradigm. It is not useful for sorting, but may be used for educational purposes, to contrast it with other more realistic algorithms; it has also been used as an example in logic programming...
- boogol
- booleanBoolean datatypeIn computer science, the Boolean or logical data type is a data type, having two values , intended to represent the truth values of logic and Boolean algebra...
- boolean expressionBoolean expressionIn computer science, a Boolean expression is an expression in a programming language that produces a Boolean value when evaluated, i.e. one of true or false...
- boolean function
- bottleneck traveling salesman
- bottom-up tree automaton
- boundary-based representation
- bounded error probability in polynomial time
- bounded queue
- bounded stack
- Boyer–Moore string search algorithmBoyer–Moore string search algorithmThe Boyer–Moore string search algorithm is a particularly efficient string searching algorithm, and it has been the standard benchmark for the practical string search literature. It was developed by Bob Boyer and J Strother Moore in 1977...
- Boyer–Moore–Horspool algorithmBoyer–Moore–Horspool algorithmIn computer science, the Boyer–Moore–Horspool algorithm or Horspool's algorithm is an algorithm for finding substrings in strings. It was published by Nigel Horspool in 1980....
- bozo sort
- B+ treeB+ treeIn computer science, a B+ tree or B plus tree is a type of tree which represents sorted data in a way that allows for efficient insertion, retrieval and removal of records, each of which is identified by a key. It is a dynamic, multilevel index, with maximum and minimum bounds on the number of...
- BPP (complexity)
- Bradford's lawBradford's lawBradford's law is a pattern first described by Samuel C. Bradford in 1934 that estimates the exponentially diminishing returns of extending a search for references in science journals...
- branchBranch (computer science)A branch is sequence of code in a computer program which is conditionally executed depending on whether the flow of control is altered or not . The term can be used when referring to programs in high level languages as well as program written in machine code or assembly language...
(as in control flow) - branchBranching (software)Branching, in revision control and software configuration management, is the duplication of an object under revision control so that modifications can happen in parallel along both branches....
(as in revision control) - branch and boundBranch and boundBranch and bound is a general algorithm for finding optimal solutions of various optimization problems, especially in discrete and combinatorial optimization...
- breadth-first searchBreadth-first searchIn graph theory, breadth-first search is a graph search algorithm that begins at the root node and explores all the neighboring nodes...
- Bresenham's algorithm
- brick sort
- bridgeBridge (graph theory)In graph theory, a bridge is an edge whose deletion increases the number of connected components. Equivalently, an edge is a bridge if and only if it is not contained in any cycle....
- British Museum algorithmBritish Museum algorithmThe British Museum algorithm is a general approach to find 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 are enormous....
- brute force attackBrute force attackIn cryptography, a brute-force attack, or exhaustive key search, is a strategy that can, in theory, be used against any encrypted data. Such an attack might be utilized when it is not possible to take advantage of other weaknesses in an encryption system that would make the task easier...
- brute force search
- brute force string search
- brute force string search with mismatches
- BSP-tree
- B*-tree
- B-treeB-treeIn computer science, a B-tree is a tree data structure that keeps data sorted and allows searches, sequential access, insertions, and deletions in logarithmic time. The B-tree is a generalization of a binary search tree in that a node can have more than two children...
- bubble sortBubble sortBubble sort, also known as sinking sort, is a simple sorting algorithm that works by repeatedly stepping through the list to be sorted, comparing each pair of adjacent items and swapping them if they are in the wrong order. The pass through the list is repeated until no swaps are needed, which...
- bucketBucket (computing)In computing, the term bucket can have several meanings. It is used both as a live metaphor, and as a generally accepted technical term in some specialised areas. A bucket is most commonly a type of data buffer or a type of document in which data is divided into regions.-Features of a...
- bucket array
- bucketing method
- bucket sortBucket sortBucket sort, or bin sort, is a sorting algorithm that works by partitioning an array into a number of buckets. Each bucket is then sorted individually, either using a different sorting algorithm, or by recursively applying the bucket sorting algorithm. It is a distribution sort, and is a cousin of...
- bucket trie
- buddy systemBuddy memory allocationThe buddy memory allocation technique is a memory allocation algorithm that divides memory into partitions to try to satisfy a memory request as suitably as possible. This system makes use of splitting memory into halves to try to give a best-fit...
- buddy tree
- build-heap
- Burrows–Wheeler transform (BWT)
- busy beaverBusy beaverIn computability theory, a busy beaver is a Turing machine that attains the maximum "operational busyness" among all the Turing machines in a certain class...
- BV-tree
- Byzantine generals
C
- cactus stack
- Calculus of Communicating SystemsCalculus of Communicating SystemsThe Calculus of Communicating Systems is a process calculus introduced by Robin Milner around 1980 and the title of a book describing the calculus. Its actions model indivisible communications between exactly two participants. The formal language includes primitives for describing parallel...
(CCS) - calendar queue
- candidate consistency testing
- candidate verification
- canonical complexity class
- capacitated facility location
- capacityMembership function (mathematics)The membership function of a fuzzy set is a generalization of the indicator function in classical sets. In fuzzy logic, it represents the degree of truth as an extension of valuation. Degrees of truth are often confused with probabilities, although they are conceptually distinct, because fuzzy...
- capacity constraint
- cartesian treeCartesian treeIn 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 traversal of the tree returns the original sequence...
- cascade merge sort
- caverphoneCaverphoneThe Caverphone phonetic matching algorithm was created by David Hood in the Caversham Project at the University of Otago in New Zealand in 2002. It was created to assist in data matching between late 19th century and early 20th century electoral rolls, where the name only needed to be in a...
- Cayley–Purser algorithm
- C curve
- cell probe model
- cell tree
- cellular automatonCellular automatonA cellular automaton is a discrete model studied in computability theory, mathematics, physics, complexity science, theoretical biology and microstructure modeling. It consists of a regular grid of cells, each in one of a finite number of states, such as "On" and "Off"...
- centroidCentroidIn geometry, the centroid, geometric center, or barycenter of a plane figure or two-dimensional shape X is the intersection of all straight lines that divide X into two parts of equal moment about the line. Informally, it is the "average" of all points of X...
- certificatePublic key certificateIn cryptography, a public key certificate is an electronic document which uses a digital signature to bind a public key with an identity — information such as the name of a person or an organization, their address, and so forth...
- chain (order theory)
- chaining (algorithm)
- child
- Chinese postman problem
- Chinese remainder theoremChinese remainder theoremThe Chinese remainder theorem is a result about congruences in number theory and its generalizations in abstract algebra.In its most basic form it concerned with determining n, given the remainders generated by division of n by several numbers...
- Christofides algorithmChristofides algorithmThe goal of the Christofides heuristic algorithm is to find a solution to the instances of the traveling salesman problem where the edge weights satisfy the triangle inequality.Let G= be an instance of TSP, i.e...
- Christofides heuristic
- chromatic index
- chromatic number
- Church–Turing thesisChurch–Turing thesisIn computability theory, the Church–Turing thesis is a combined hypothesis about the nature of functions whose values are effectively calculable; in more modern terms, algorithmically computable...
- circuitDigital circuitDigital electronics represent signals by discrete bands of analog levels, rather than by a continuous range. All levels within a band represent the same signal state...
- circuit complexityCircuit complexityIn 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 Boolean circuits that compute them....
- circuit value problem
- circular list
- circular queue
- cliqueClique (graph theory)In the mathematical area of graph theory, a clique in an undirected graph is a subset of its vertices such that every two vertices in the subset are connected by an edge. Cliques are one of the basic concepts of graph theory and are used in many other mathematical problems and constructions on graphs...
- clique problemClique problemIn computer science, the clique problem refers to any of the problems related to finding particular complete subgraphs in a graph, i.e., sets of elements where each pair of elements is connected....
- clustering (see hash tableHash tableIn computer science, a hash table or hash map is a data structure that uses a hash function to map identifying values, known as keys , to their associated values . Thus, a hash table implements an associative array...
) - clustering free
- coalesced hashingCoalesced hashingCoalesced hashing, also called coalesced chaining, is a strategy of collision resolution in a hash table that forms a hybrid of separate chaining and open addressing. In a separate chaining hash table, items that hash to the same address are placed on a list at that address...
- coarsening
- cocktail shaker sort
- codeword
- coding tree
- collective recursion
- collisionHash collisionNot to be confused with wireless packet collision.In computer science, a collision or clash is a situation that occurs when two distinct pieces of data have the same hash value, checksum, fingerprint, or cryptographic digest....
- collision resolution scheme
- Colussi
- combinationCombinationIn mathematics a combination is a way of selecting several things out of a larger group, where order does not matter. In smaller cases it is possible to count the number of combinations...
- comb sortComb sortComb sort is a relatively simplistic sorting algorithm originally designed by Włodzimierz Dobosiewicz in 1980. Later it was rediscovered and popularized by Stephen Lacey and Richard Box with a Byte Magazine . Comb sort improves on bubble sort, and rivals algorithms like Quicksort...
- Communicating Sequential ProcessesCommunicating sequential processesIn computer science, Communicating Sequential Processes 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 process calculi...
- commutative
- compact DAWG
- compact trie
- comparison sortComparison sortA comparison sort is a type of sorting algorithm that only reads the list elements through a single abstract comparison operation that determines which of two elements should occur first in the final sorted list...
- competitive analysisCompetitive analysis (online algorithm)Competitive analysis is a method invented for analyzing online algorithms, in which the performance of an online algorithm is compared to the performance of an optimal offline algorithm that can view the sequence of requests in advance...
- competitive ratio
- complement
- complete binary tree
- complete graphComplete graphIn 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.-Properties:...
- completely connected graph
- complete tree
- complexityComplexityIn general usage, complexity tends to be used to characterize something with many parts in intricate arrangement. The study of these complex linkages is the main goal of complex systems theory. In science there are at this time a number of approaches to characterizing complexity, many of which are...
- complexity classComplexity classIn computational complexity theory, a complexity class is a set of problems of related resource-based complexity. A typical complexity class has a definition of the form:...
- computable
- concave functionConcave functionIn mathematics, a concave function is the negative of a convex function. A concave function is also synonymously called concave downwards, concave down, convex upwards, convex cap or upper convex.-Definition:...
- concurrent flow
- concurrent read, concurrent write
- concurrent read, exclusive write
- configurationComputer configurationIn communications or computer systems, a configuration is an arrangement of functional units according to their nature, number, and chief characteristics. Often, configuration pertains to the choice of hardware, software, firmware, and documentation...
- confluently persistent data structure
- conjunctionLogical conjunctionIn logic and mathematics, a two-place logical operator and, also known as logical conjunction, results in true if both of its operands are true, otherwise the value of false....
- connected componentsConnected component (graph theory)In graph theory, a connected component of an undirected graph is a subgraph in which any two vertices are connected to each other by paths, and which is connected to no additional vertices. For example, the graph shown in the illustration on the right has three connected components...
- connected graph
- co-NP
- constant functionConstant functionIn mathematics, a constant function is a function whose values do not vary and thus are constant. For example the function f = 4 is constant since f maps any value to 4...
- continuous knapsack problemContinuous knapsack problemThe continuous knapsack problem, also known as the fractional knapsack problem, is similar to the classic knapsack problem but in this problem fractions of an item can be put into the knapsack.The problem is as following:...
- Cook reduction
- Cook's theoremCook's theoremIn computational complexity theory, the Cook–Levin theorem, also known as Cook's theorem, states that the Boolean satisfiability problem is NP-complete...
- counting sortCounting sortIn computer science, counting sort is an algorithm for sorting a collection of objects according to keys that are small integers; that is, it is an integer sorting algorithm. It operates by counting the number of objects that have each distinct key value, and using arithmetic on those counts to...
- covering
- CRCW
- Crew (algorithm)
- critical path problem
- CSPCommunicating sequential processesIn computer science, Communicating Sequential Processes 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 process calculi...
(communicating sequential processes) - CSPConstraint satisfaction problemConstraint satisfaction problems s are mathematical problems defined as a set of objects whose state must satisfy a number of constraints or limitations. CSPs represent the entities in a problem as a homogeneous collection of finite constraints over variables, which is solved by constraint...
(constraint satisfaction problem) - CTLComputational tree logicComputation tree logic is a branching-time logic, meaning that its model of time is a tree-like structure in which the future is not determined; there are different paths in the future, any one of which might be an actual path that is realised...
- cuckoo hashingCuckoo hashingCuckoo hashing is a scheme in computer programming for resolving hash collisions of values of hash functions in a table. Cuckoo hashing was first described by Rasmus Pagh and Flemming Friche Rodler in 2001...
- cut (graph theory)Cut (graph theory)In graph theory, a cut is a partition of the vertices of a graph into two disjoint subsets. The cut-set of the cut is the set of edges whose end points are in different subsets of the partition. Edges are said to be crossing the cut if they are in its cut-set.In an unweighted undirected graph, the...
- cut (logic programming)Cut (logic programming)The cut, in Prolog, is a goal, written as !, which always succeeds, but cannot be backtracked past. It is best used to prevent unwanted backtracking, for example, to prevent extra solutions being found by Prolog and avoid additional computations that are not desired or required in a program.The cut...
- cutting plane
- cutting stock problemCutting stock problemThe cutting-stock problem is an optimization problem, or more specifically, an integer linear programming problem. It arises from many applications in industry. Imagine that you work in a paper mill and you have a number of rolls of paper of fixed width waiting to be cut, yet different customers...
- cutting theorem
- cut vertex
- cycleCycle (mathematics)In mathematics, and in particular in group theory, a cycle is a permutation of the elements of some set X which maps the elements of some subset S to each other in a cyclic fashion, while fixing all other elements...
- cycle sortCycle sortCycle 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...
- cyclic redundancy checkCyclic redundancy checkA cyclic redundancy check is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data...
(CRC)
D
- D-adjacent
- DAG shortest paths
- Damerau–Levenshtein distance
- data structureData structureIn computer science, a data structure is a particular way of storing and organizing data in a computer so that it can be used efficiently.Different kinds of data structures are suited to different kinds of applications, and some are highly specialized to specific tasks...
- decidableDecidability (logic)In logic, the term decidable refers to the decision problem, the question of the existence of an effective method for determining membership in a set of formulas. Logical systems such as propositional logic are decidable if membership in their set of logically valid formulas can be effectively...
- decidable language
- decimationDecimation (signal processing)In digital signal processing, decimation is a technique for reducing the number of samples in a discrete-time signal. The element which implements this technique is referred to as a decimator.Decimation is a two-step process:...
- decision problemDecision problemIn computability theory and computational complexity theory, a decision problem is a question in some formal system with a yes-or-no answer, depending on the values of some input parameters. For example, the problem "given two numbers x and y, does x evenly divide y?" is a decision problem...
- decision treeDecision treeA decision tree is a decision support tool that uses a tree-like graph or model of decisions and their possible consequences, including chance event outcomes, resource costs, and utility. It is one way to display an algorithm. Decision trees are commonly used in operations research, specifically...
- decomposable searching problem
- degreeDegree (mathematics)In mathematics, there are several meanings of degree depending on the subject.- Unit of angle :A degree , usually denoted by ° , is a measurement of a plane angle, representing 1⁄360 of a turn...
- dense graphDense graphIn mathematics, a dense graph is a graph in which the number of edges is close to the maximal number of edges. The opposite, a graph with only a few edges, is a sparse graph...
- depoissonization
- depthDepth-limited searchIn computer science depth-limited search is an algorithm to explore the vertices of a graph. It is a modification of depth-first search and is used for example in the iterative deepening depth-first search algorithm.- General :...
- depth-first searchDepth-first searchDepth-first search is an algorithm for traversing or searching a tree, tree structure, or graph. One starts at the root and explores as far as possible along each branch before backtracking....
(DFS) - dequeDequeIn computer science, a double-ended queue is an abstract data structure that implements a queue for which elements can only be added to or removed from the front or back...
- derangementDerangementIn combinatorial mathematics, a derangement is a permutation of the elements of a set such that none of the elements appear in their original position....
- descendant (see tree structureTree structureA tree structure 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, even though the chart is generally upside down compared to an actual tree, with the "root" at the top and the...
) - deterministicDeterministic algorithmIn computer science, a deterministic algorithm is an algorithm which, in informal terms, behaves predictably. Given a particular input, it will always produce the same output, and the underlying machine will always pass through the same sequence of states...
- deterministic algorithmDeterministic algorithmIn computer science, a deterministic algorithm is an algorithm which, in informal terms, behaves predictably. Given a particular input, it will always produce the same output, and the underlying machine will always pass through the same sequence of states...
- deterministic finite automata string search
- deterministic finite automaton (DFA)
- deterministic finite state machineDeterministic finite state machineIn the theory of computation and automata theory, a deterministic finite state machine—also known as deterministic finite automaton —is a finite state machine accepting finite strings of symbols. For each state, there is a transition arrow leading out to a next state for each symbol...
- deterministic finite tree automaton
- deterministic pushdown automatonDeterministic pushdown automatonIn automata theory, a pushdown automaton is a finite automaton with an additional stack of symbols; its transitions can take the top symbol on the stack and depend on its value, and they can add new top symbols to the stack....
(DPDA) - deterministic tree automaton
- Deutsch–Jozsa algorithm
- DFS forest
- DFTA
- diagonalization argument
- diameterDiameterIn geometry, a diameter of a circle is any straight line segment that passes through the center of the circle and whose endpoints are on the circle. The diameters are the longest chords of the circle...
- dichotomic searchDichotomic searchIn computer science, a dichotomic search is a search algorithm that operates by selecting between two distinct alternatives at each step. It is a specific type of divide and conquer algorithm...
- dictionaryDictionaryA dictionary is a collection of words in one or more specific languages, often listed alphabetically, with usage information, definitions, etymologies, phonetics, pronunciations, and other information; or a book of words in one language with their equivalents in another, also known as a lexicon...
- diet (see discrete interval encoding tree below)
- difference (set theory)
- digital search tree
- digital tree
- digraphDirected graphA directed graph or digraph is a pair G= of:* a set V, whose elements are called vertices or nodes,...
- Dijkstra's algorithmDijkstra's algorithmDijkstra's algorithm, conceived by Dutch computer scientist Edsger Dijkstra in 1956 and published in 1959, is a graph search algorithm that solves the single-source shortest path problem for a graph with nonnegative edge path costs, producing a shortest path tree...
- diminishing increment sort
- dining philosophers
- direct chaining hashing
- directed acyclic graphDirected acyclic graphIn mathematics and computer science, a directed acyclic graph , is a directed graph with no directed cycles. That is, it is formed by a collection of vertices and directed edges, each edge connecting one vertex to another, such that there is no way to start at some vertex v and follow a sequence of...
(DAG) - directed acyclic word graphDirected acyclic word graphIn computer science, a directed acyclic word graph is a data structure that represents a set of strings, and allows for a query operation that tests whether a given string belongs to the set in time proportional to its length...
(DAWG) - directed graphDirected graphA directed graph or digraph is a pair G= of:* a set V, whose elements are called vertices or nodes,...
- discrete interval encoding tree
- discrete p-center
- disjoint set
- disjunction
- distributional complexity
- distribution sort
- divide and conquer algorithmDivide and conquer algorithmIn computer science, divide and conquer is an important algorithm design paradigm based on multi-branched recursion. A divide and conquer algorithm works by recursively breaking down a problem into two or more sub-problems of the same type, until these become simple enough to be solved directly...
- divide and marriage before conquest
- division method
- Data domainData domainIn data management and database analysis, a data domain refers to all the unique values which 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....
- don't careDon't Care"Don't Care" is a 1994 single by American death metal band Obituary. It was released only in the USA, like a previous release of the album World Demise...
- Doomsday rule
- double-direction bubble sort
- double-ended priority queueDouble-ended priority queueA double-ended priority queue is an abstract data type similar to a priority queue except that it allows for efficient removal of both the maximum and minimum element. It is a data structure in which one can insert elements and then remove the elements with minimum or maximum priority. Every...
- double hashingDouble hashingDouble hashing is a computer programming technique used in hash tables to resolve hash collisions, cases when two different values to be searched for produce the same hash key...
- double left rotation
- Double Metaphone
- double right rotation
- doubly chained tree
- doubly ended queue
- doubly linked list
- Dragon curveDragon curveA dragon curve is any member of a family of self-similar fractal curves, which can be approximated by recursive methods such as Lindenmayer systems.-Heighway dragon:...
- dual graphDual graphIn mathematics, the dual graph of a given planar graph G is a graph which has a vertex for each plane region of G, and an edge for each edge in G joining two neighboring regions, for a certain embedding of G. The term "dual" is used because this property is symmetric, meaning that if H is a dual...
- dual linear program
- Dutch national flag
- dyadic tree
- dynamic arrayDynamic arrayIn computer science, a dynamic array, growable array, resizable array, dynamic table, or array list is a random access, variable-size list data structure that allows elements to be added or removed...
- dynamic data structure
- dynamic hashing
- dynamic programmingDynamic programmingIn mathematics and computer science, dynamic programming is a method for solving complex problems by breaking them down into simpler subproblems. It is applicable to problems exhibiting the properties of overlapping subproblems which are only slightly smaller and optimal substructure...
- dynamization transformation
E
- edge
- edge coloringEdge coloringIn graph theory, an edge coloring of a graph is an assignment of “colors” to the edges of the graph so that no two adjacent edges have the same color. For example, the figure to the right shows an edge coloring of a graph by the colors red, blue, and green. Edge colorings are one of several...
- edge connectivity
- edge crossing
- edge-weighted graph
- edit distanceEdit distanceIn information theory and computer science, the edit distance between two strings of characters generally refers to the Levenshtein distance. However, according to Nico Jacobs, “The term ‘edit distance’ is sometimes used to refer to the distance in which insertions and deletions have equal cost and...
- edit operation
- edit script
- 8 queens
- elastic-bucket trie
- element uniqueness
- end-of-string
- enfilade
- Euclidean algorithmEuclidean algorithmIn mathematics, the Euclidean algorithm is an efficient method for computing the greatest common divisor of two integers, also known as the greatest common factor or highest common factor...
- Euclidean distanceEuclidean distanceIn mathematics, the Euclidean distance or Euclidean metric is the "ordinary" distance between two points that one would measure with a ruler, and is given by the Pythagorean formula. By using this formula as distance, Euclidean space becomes a metric space...
- Euclidean Steiner tree
- Euclidean traveling salesman problem
- Euclid's algorithm
- Euler cycle
- Eulerian graph
- Eulerian pathEulerian pathIn graph theory, an Eulerian trail is a trail in a graph which visits every edge exactly once. Similarly, an Eulerian circuit or Eulerian cycle is a Eulerian trail which starts and ends on the same vertex. They were first discussed by Leonhard Euler while solving the famous Seven Bridges of...
- 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 graphExpander graphIn combinatorics, an expander graph is a sparse graph that has strong connectivity properties, quantified using vertex, edge or spectral expansion as described below...
- exponential
- extended binary tree
- extended Euclidean algorithmExtended Euclidean algorithmThe extended Euclidean algorithm is an extension to the Euclidean algorithm. Besides finding the greatest common divisor of integers a and b, as the Euclidean algorithm does, it also finds integers x and y that satisfy Bézout's identityThe extended Euclidean algorithm is particularly useful when a...
- extended k-d tree
- extendible hashingExtendible hashingExtendible 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...
- 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 pointExtreme pointIn mathematics, an extreme point of a convex set S in a real vector space is a point in S which does not lie in any open line segment joining two points of S...
F
- facility locationFacility locationFacility location, also known as location analysis, is a branch of operations research and computational geometry concerning itself with mathematical modeling and solution of problems concerning optimal placement of facilities in order to minimize transportation costs, avoid placing hazardous...
- factor (see substringSubstringA subsequence, substring, prefix or suffix of a string is a subset of the symbols in a string, where the order of the elements is preserved...
) - factorialFactorialIn mathematics, the factorial of a non-negative integer n, denoted by n!, is the product of all positive integers less than or equal to n...
- fast fourier transformFast Fourier transformA fast Fourier transform is an efficient algorithm to compute the discrete Fourier transform and its inverse. "The FFT has been called the most important numerical algorithm of our lifetime ." There are many distinct FFT algorithms involving a wide range of mathematics, from simple...
(FFT) - fathoming
- feasible region
- feasible solution
- feedback edge set
- feedback vertex setFeedback vertex setIn the mathematical discipline of graph theory, a feedback vertex set of a graph is a set of vertices whose removal leaves a graph without cycles. In other words, each feedback vertex set contains at least one vertex of any cycle in the graph....
- Ferguson–Forcade algorithm
- Fibonacci numberFibonacci numberIn mathematics, the Fibonacci numbers are the numbers in the following integer sequence:0,\;1,\;1,\;2,\;3,\;5,\;8,\;13,\;21,\;34,\;55,\;89,\;144,\; \ldots\; ....
- Fibonacci search
- Fibonacci tree
- Fibonacci heapFibonacci heapIn computer science, a Fibonacci heap is a heap data structure consisting of a collection of trees. It has a better amortized running time than a binomial heap. Fibonacci heaps were developed by Michael L. Fredman and Robert E. Tarjan in 1984 and first published in a scientific journal in 1987...
- filial-heir chain
- FindFindIn Unix-like and some other operating systems, find is a command-line utility that searches through one or more directory trees of a file system, locates files based on some user-specified criteria and applies a user-specified action on each matched file...
- find kth least element
- finitary tree
- finite Fourier transform (discrete Fourier transformDiscrete Fourier transformIn mathematics, the discrete Fourier transform is a specific kind of discrete transform, used in Fourier analysis. It transforms one function into another, which is called the frequency domain representation, or simply the DFT, of the original function...
) - finite state automaton
- finite state machineFinite state machineA finite-state machine or finite-state automaton , or simply a state machine, is a mathematical model used to design computer programs and digital logic circuits. It is conceived as an abstract machine that can be in one of a finite number of states...
- finite state machine minimization
- finite state transducerFinite state transducerA finite state transducer is a finite state machine with two tapes: an input tape and an output tape. This contrasts with an ordinary finite state automaton , which has a single tape.-Overview:...
- first child-next sibling binary tree
- first come, first servedFirst Come, First ServedFirst Come, First Served is the third studio album by American emcee Keith Thornton, better known as Kool Keith. Released in 1999, it is his first release under the alias Dr. Dooom.- Production :...
- first-in, first-out (FIFO)
- fixed-grid method
- flash sort
- flowFlow (mathematics)In mathematics, a flow formalizes the idea of the motion of particles in a fluid. Flows are ubiquitous in science, including engineering and physics. The notion of flow is basic to the study of ordinary differential equations. Informally, a flow may be viewed as a continuous motion of points over...
- flow conservation
- flow function
- flow networkFlow networkIn graph theory, a flow 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 Research, a directed graph is called a network, the vertices are called nodes and the edges are...
- Floyd–Warshall algorithm
- Ford–Bellman algorithm
- Ford–Fulkerson algorithm
- forestForestA forest, also referred to as a wood or the woods, is an area with a high density of trees. As with cities, depending where you are in the world, what is considered a forest may vary significantly in size and have various classification according to how and what of the forest is composed...
- forest editing problem
- formal languageFormal languageA formal language is a set of words—that is, finite strings of letters, symbols, or tokens that are defined in the language. The set from which these letters are taken is the alphabet over which the language is defined. A formal language is often defined by means of a formal grammar...
- formal methodsFormal methodsIn computer science and software engineering, formal methods are a particular kind of mathematically-based techniques for the specification, development and verification of software and hardware systems...
- formal verificationFormal verificationIn 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 methods of mathematics .- Usage :Formal verification can be...
- forward index
- fractalFractalA fractal has been defined as "a rough or fragmented geometric shape that can be split into parts, each of which is a reduced-size copy of the whole," a property called self-similarity...
- fractional knapsack problem
- fractional solution
- free edge
- free listFree listA free list 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 next...
- 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)Function (mathematics)In mathematics, a function associates one quantity, the argument of the function, also known as the input, with another quantity, the value of the function, also known as the output. A function assigns exactly one output to each input. The argument and the value may be real numbers, but they can...
- functional data structure
G
- Galil–Giancarlo
- Galil–Seiferas
- gamma functionGamma functionIn mathematics, the gamma function is an extension of the factorial function, with its argument shifted down by 1, to real and complex numbers...
- GBD-tree
- geometric optimization problem
- global optimumGlobal optimumIn mathematics, a global optimum is a selection from a given domain which yields either the highest value or lowest value , when a specific function is applied. For example, for the function...
- gnome sortGnome sortGnome sort, originally proposed by Hamid Sarbazi-Azad in 2000 and called , and then later on described by Dick Grune and named "Gnome sort", is a sorting algorithm which is similar to insertion sort, except that moving an element to its proper place is accomplished by a series of swaps, as in...
- goobiGoobiGoobi is an open-source software for the control of workflows in digitisation projects. It is used by a number of archives, libraries, museums, publishers, and scanning utilities. The software is used for mass digitisation of documents...
- graphGraph (data structure)In computer science, a graph is an abstract data structure that is meant to implement the graph and hypergraph concepts from mathematics.A graph data structure consists of a finite set of ordered pairs, called edges or arcs, of certain entities called nodes or vertices...
- graph coloringGraph coloringIn 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 of a graph such that no two adjacent vertices share the...
- graph concentration
- graph drawingGraph drawingGraph 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, cartography, and bioinformatics...
- graph isomorphismGraph isomorphismIn graph theory, an isomorphism of graphs G and H is a bijection between the vertex sets of G and H f \colon V \to V \,\!such that any two vertices u and v of G are adjacent in G if and only if ƒ and ƒ are adjacent in H...
- graph partitionGraph partitionIn mathematics, the graph partition problem is defined on data represented in the form of a graph G= , with V vertices and E edges, such that it is possible to partition G into smaller components with specific properties. For instance, a k-way partition divides the vertex set into k smaller...
- Gray codeGray codeThe reflected binary code, also known as Gray code after Frank Gray, is a binary numeral system where two successive values differ in only one bit. It is a non-weighted code....
- greatest common divisorGreatest common divisorIn mathematics, the greatest common divisor , also known as the greatest common factor , or highest common factor , of two or more non-zero integers, is the largest positive integer that divides the numbers without a remainder.For example, the GCD of 8 and 12 is 4.This notion can be extended to...
(GCD) - greedy algorithmGreedy algorithmA greedy algorithm is any algorithm that follows the problem solving heuristic of making the locally optimal choice at each stagewith the hope of finding the global optimum....
- greedy heuristic
- grid drawing
- grid fileGrid fileIn 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...
- Grover's algorithmGrover's algorithmGrover's algorithm is a quantum algorithm for searching an unsorted database with N entries in O time and using O storage space . It was invented by Lov Grover in 1996....
H
- halting problemHalting problemIn computability theory, the halting problem can be stated as follows: Given a description of a computer program, decide whether the program finishes running or continues to run forever...
- Hamiltonian cycle
- Hamiltonian pathHamiltonian pathIn the mathematical field of graph theory, a Hamiltonian path is a path in an undirected graph that visits each vertex exactly once. A Hamiltonian cycle is a cycle in an undirected graph that visits each vertex exactly once and also returns to the starting vertex...
- Hamming distanceHamming distanceIn information theory, the Hamming distance between two strings of equal length is the number of positions at which the corresponding symbols are different...
- Harter–Highway dragonDragon curveA dragon curve is any member of a family of self-similar fractal curves, which can be approximated by recursive methods such as Lindenmayer systems.-Heighway dragon:...
- hash functionHash functionA hash function is any algorithm or subroutine that maps large data sets to smaller data sets, called keys. For example, a single integer can serve as an index to an array...
- hash heap
- hash tableHash tableIn computer science, a hash table or hash map is a data structure that uses a hash function to map identifying values, known as keys , to their associated values . Thus, a hash table implements an associative array...
- hash table delete
- Hausdorff distanceHausdorff distanceIn 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 metric space in its own right...
- hB-tree
- head
- heapHeap (data structure)In computer science, a heap is a specialized tree-based data structure that satisfies the heap property: if B is a child node of A, then key ≥ key. This implies that an element with the greatest key is always in the root node, and so such a heap is sometimes called a max-heap...
- heapify
- heap property
- heapsortHeapsortHeapsort is a comparison-based sorting algorithm to create a sorted array , and is part of the selection sort family. Although somewhat slower in practice on most machines than a well implemented quicksort, it has the advantage of a more favorable worst-case O runtime...
- heaviest common subsequence
- heightHeightHeight is the measurement of vertical distance, but has two meanings in common use. It can either indicate how "tall" something is, or how "high up" it is. For example "The height of the building is 50 m" or "The height of the airplane is 10,000 m"...
- height-balanced binary search tree
- height-balanced tree
- heuristicHeuristicHeuristic refers to experience-based techniques for problem solving, learning, and discovery. Heuristic methods are used to speed up the process of finding a satisfactory solution, where an exhaustive search is impractical...
- hidden Markov modelHidden Markov modelA hidden Markov model is a statistical Markov model in which the system being modeled is assumed to be a Markov process with unobserved states. An HMM can be considered as the simplest dynamic Bayesian network. The mathematics behind the HMM was developed by L. E...
- highest common factor
- Hilbert curveHilbert curveA Hilbert 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 curves discovered by Giuseppe Peano in 1890....
- histogram sort
- homeomorphic
- horizontal visibility map
- Horner's rule
- Horspool
- Huffman encoding
- Hungarian algorithmHungarian algorithmThe Hungarian method is a combinatorial optimization algorithm which solves the assignment problem in polynomial time and which anticipated later primal-dual methods...
- hybrid algorithm
- hyperedge
- hypergraphHypergraphIn mathematics, a hypergraph is a generalization of a graph, where an edge can connect any number of vertices. Formally, a hypergraph H is a pair H = where X is a set of elements, called nodes or vertices, and E is a set of non-empty subsets of X called hyperedges or links...
I
- Identity functionIdentity functionIn mathematics, an identity function, also called identity map or identity transformation, is a function that always returns the same value that was used as its argument...
- ideal merge
- implication
- implies
- in-branching
- inclusion-exclusion principleInclusion-exclusion principleIn combinatorics, the inclusion–exclusion principle is an equation relating the sizes of two sets and their union...
- inclusive or
- incompressible stringIncompressible stringAn incompressible string is one that cannot be compressed because it lacks sufficient repeating sequences. Whether a string is compressible will often depend on the algorithm being used...
- incremental algorithm
- in-degree
- independent set (graph theory)Independent set (graph theory)In graph theory, an independent set or stable set is a set of vertices in a graph, no two of which are adjacent. That is, it is a set I of vertices such that for every two vertices in I, there is no edge connecting the two. Equivalently, each edge in the graph has at most one endpoint in I...
- index file
- information theoretic bound
- in-order traversal
- in-place sort
- insertion sortInsertion sortInsertion sort is a simple sorting algorithm: a comparison sort in which the sorted array is built one entry at a time. It is much less efficient on large lists than more advanced algorithms such as quicksort, heapsort, or merge sort...
- instantaneous description
- integer linear program
- integer multi-commodity flow
- integer polyhedron
- interactive proof systemInteractive proof systemIn computational complexity theory, an interactive proof system is an abstract machine that models computation as the exchange of messages between two parties. The parties, the verifier and the prover, interact by exchanging messages in order to ascertain whether a given string belongs to a...
- interior-based representation
- internal node
- internal sortInternal sortAn internal sort is any data sorting process that takes place entirely within the main memory of a computer. This is possible whenever the data to be sorted is small enough to all be held in the main memory. For sorting larger datasets, it may be necessary to hold only a chunk of data in memory at...
- interpolation searchInterpolation searchInterpolation search is an algorithm for searching for a given key value in an indexed array that has been ordered by the values of the key. It parallels how humans search through a telephone book for a particular name, the key value by which the book's entries are ordered...
- interpolation-sequential search
- interpolation sort
- intersection (set theory)Intersection (set theory)In mathematics, the intersection of two sets A and B is the set that contains all elements of A that also belong to B , but no other elements....
- interval treeInterval treeIn computer science, an interval tree is an ordered tree data structure to hold intervals. Specifically, it allows one to efficiently find all intervals that overlap with any given interval or point. It is often used for windowing queries, for example, to find all roads on a computerized map inside...
- intractable
- introsortIntrosortIntrosort or introspective sort is a sorting algorithm designed by David Musser in 1997. It begins with quicksort and switches to heapsort when the recursion depth exceeds a level based on the number of elements being sorted...
- introspective sort
- inverse Ackermann function
- inverted file index
- inverted indexInverted indexIn computer science, an inverted index is an index data structure storing a mapping from content, such as words or numbers, to its locations in a database file, or in a document or a set of documents...
- irreflexive
- isomorphic
- iterationIterationIteration means the act of repeating a process usually with the aim of approaching a desired goal or target or result. Each repetition of the process is also called an "iteration," and the results of one iteration are used as the starting point for the next iteration.-Mathematics:Iteration in...
J
- Jaro–Winkler distance
- Johnson's algorithmJohnson's algorithmJohnson's algorithm is a way to find the shortest paths between all pairs of vertices in a sparse directed graph. It allows some of the edge weights to be negative numbers, but no negative-weight cycles may exist...
- Johnson–Trotter algorithm
- J sortJ sortJ sort is an in-place sort algorithm that uses strand sort to sort fewer than about 40 items and shuffle sort to sort more. John Cohen claimed to have invented this algorithm....
- JSortJSortJSort is an in-place sort algorithm that uses build heap twice to largely order the array then finishes with an insertion sort. JSort is attributed to Jason Morrison....
- jump list
- jump search
K
- Karmarkar's algorithmKarmarkar's algorithmKarmarkar's algorithm is an algorithm introduced by Narendra Karmarkar in 1984 for solving linear programming problems. It was the first reasonably efficient algorithm that solves these problems in polynomial time...
- Karnaugh mapKarnaugh mapThe Karnaugh map , Maurice Karnaugh's 1953 refinement of Edward Veitch's 1952 Veitch diagram, is a method to simplify Boolean algebra expressions...
- Karp–Rabin string search algorithm
- Karp reduction
- k-ary heap
- k-ary Huffman encoding
- k-ary treeK-ary treeIn graph theory, a k-ary tree is a rooted tree in which each node has no more than k children. It is also sometimes known as a k-way tree, an N-ary tree, or an M-ary tree.A binary tree is the special case where k=2....
- k-clustering
- k-coloring
- k-connected graph
- k-d-B-tree
- k-dimensional
- K-dominant match
- k-d tree
- key
- KMPInternet Security Association and Key Management ProtocolISAKMP is a protocol defined by RFC 2408 for establishing Security Associations and cryptographic keys in an Internet environment...
- KmpSkip Search
- knapsack problemKnapsack problemThe knapsack problem or rucksack problem is a problem in combinatorial optimization: Given a set of items, each with a weight and a value, determine the count of each item to include in a collection so that the total weight is less than or equal to a given limit and the total value is as large as...
- knight's tourKnight's tourThe knight's tour is a mathematical problem involving a knight on a chessboard. The knight is placed on the empty board and, moving according to the rules of chess, must visit each square exactly once. A knight's tour is called a closed tour if the knight ends on a square attacking the square from...
- Knuth–Morris–Pratt algorithmKnuth–Morris–Pratt algorithmThe Knuth–Morris–Pratt string searching algorithm searches for occurrences of a "word" W within a main "text string" S by employing the observation that when a mismatch occurs, the word itself embodies sufficient information to determine where the next match could begin, thus bypassing...
- Königsberg bridges problem
- Kolmogorov complexityKolmogorov complexityIn algorithmic information theory , the Kolmogorov complexity of an object, such as a piece of text, is a measure of the computational resources needed to specify the object...
- Kraft's inequalityKraft's inequalityIn coding theory, Kraft's inequality, named after Leon Kraft, gives a necessary and sufficient condition for the existence of a uniquely decodable code for a given set of codeword lengths...
- Kripke structureKripke structureA Kripke structure is a type of nondeterministic finite state machine proposed by Saul Kripke , used in model checking to represent the behavior of a system.It is a simple abstract machine to capture an idea of a computing machine,...
- Kruskal's algorithmKruskal's algorithmKruskal's algorithm is an algorithm in graph theory that finds a minimum spanning tree for a connected weighted graph. This means it finds a subset of the edges that forms a tree that includes every vertex, where the total weight of all the edges in the tree is minimized...
- 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
- languageLanguageLanguage may refer either to the specifically human capacity for acquiring and using complex systems of communication, or to a specific instance of such a system of complex communication...
- last-in, first-out (LIFO)
- Las Vegas algorithmLas Vegas algorithmIn computing, a Las Vegas algorithm is a randomized algorithm that always gives correct results; that is, it always produces the correct result or it informs about the failure. In other words, a Las Vegas algorithm does not gamble with the verity of the result; it gambles only with the resources...
- lattice (group)Lattice (group)In mathematics, especially in geometry and group theory, a lattice in Rn is a discrete subgroup of Rn which spans the real vector space Rn. Every lattice in Rn can be generated from a basis for the vector space by forming all linear combinations with integer coefficients...
- layered graph
- LCS
- leafLeafA leaf is an organ of a vascular plant, as defined in botanical terms, and in particular in plant morphology. Foliage is a mass noun that refers to leaves as a feature of plants....
- least common multipleLeast common multipleIn arithmetic and number theory, the least common multiple of two integers a and b, usually denoted by LCM, is the smallest positive integer that is a multiple of both a and b...
(LCM) - leftist treeLeftist treeA leftist tree or leftist heap is a priority queue implemented with a variant of a binary heap. Every node has an s-value which is the distance to the nearest leaf. In contrast to a binary heap, a leftist tree attempts to be very unbalanced...
- left rotationLeft rotationLeft rotation refers to the following* In an array, moving all items to the next lower location. The first item is moved to the last location, which is now vacant.* In a list, removing the head and inserting it at the tail.- Tree Rotation :...
- Lempel–Ziv–Welch (LZW)
- level-order traversal
- Levenshtein distanceLevenshtein distanceIn information theory and computer science, the Levenshtein distance is a string metric for measuring the amount of difference between two sequences...
- lexicographical orderLexicographical orderIn mathematics, the lexicographic or lexicographical order, , is a generalization of the way the alphabetical order of words is based on the alphabetical order of letters.-Definition:Given two partially ordered sets A and B, the lexicographical order on...
- linearLinearIn mathematics, a linear map or function f is a function which satisfies the following two properties:* Additivity : f = f + f...
- linear congruential generatorLinear congruential generatorA Linear Congruential Generator represents one of the oldest and best-known pseudorandom number generator algorithms. The theory behind them is easy to understand, and they are easily implemented and fast....
- linear hashLinear hashLinear hashing is a dynamic hash table algorithm invented by Witold Litwin , and later popularized by Paul Larson. Linear hashing allows for the expansion of the hash table one slot at a time....
- linear insertion sort
- linear order
- linear probingLinear probingLinear probing is a scheme in computer programming for resolving hash collisions of values of hash functions by sequentially searching the hash table for a free location. This is accomplished using two values - one as a starting value and one as an interval between successive values in modular...
- linear probing sort
- linear product
- linear program
- linear quadtree
- linear searchLinear searchIn computer science, linear search or sequential search is a method for finding a particular value in a list, that consists of checking every one of its elements, one at a time and in sequence, until the desired one is found....
- linkReference (computer science)In computer science, a reference is a value that enables a program to indirectly access a particular data item, such as a variable or a record, in the computer's memory or in some other storage device. The reference is said to refer to the data item, and accessing those data is called...
- linked listLinked listIn computer science, a linked list is a data structure consisting of a group of nodes which together represent a sequence. Under the simplest form, each node is composed of a datum and a reference to the next node in the sequence; more complex variants add additional links...
- list
- list contraction
- little-o notation
- Lm distance
- load factor (computer science)
- local alignment
- local optimumLocal optimumLocal optimum is a term in applied mathematics and computer science.A local optimum of a combinatorial optimization problem is a solution that is optimal within a neighboring set of solutions...
- logarithmLogarithmThe logarithm of a number is the exponent by which another fixed value, the base, has to be raised to produce that number. For example, the logarithm of 1000 to base 10 is 3, because 1000 is 10 to the power 3: More generally, if x = by, then y is the logarithm of x to base b, and is written...
, logarithmic scaleLogarithmic scaleA logarithmic scale is a scale of measurement using the logarithm of a physical quantity instead of the quantity itself.A simple example is a chart whose vertical axis increments are labeled 1, 10, 100, 1000, instead of 1, 2, 3, 4... - longest common subsequence
- longest common substring
- Lotka's law
- lower bound
- lower triangular matrix
- lowest common ancestorLowest common ancestorThe lowest common ancestor is a concept in graph theory and computer science. Let T be a rooted tree with n nodes. The lowest common ancestor is defined between two nodes v and w as the lowest node in T that has both v and w as descendants .The LCA of v and w in T is the shared ancestor of v...
- l-reductionL-reductionIn computer science, in particular in the study of approximation algorithms, anL-reduction is a transformation of optimization problems which linearly preserves approximability features...
M
- Malhotra–Kumar–Maheshwari blocking flow (ru.)
- Manhattan distance
- many-one reductionMany-one reductionIn computability theory and computational complexity theory, a many-one reduction is a reduction which converts instances of one decision problem into instances of a second decision problem. Reductions are thus used to measure the relative computational difficulty of two problems.Many-one...
- Markov chainMarkov chainA Markov chain, named after Andrey Markov, is a mathematical system that undergoes transitions from one state to another, between a finite or countable number of possible states. It is a random process characterized as memoryless: the next state depends only on the current state and not on the...
- marriage problem (see assignment problemAssignment problemThe assignment problem is one of the fundamental combinatorial optimization problems in the branch of optimization or operations research in mathematics...
) - Master theoremMaster theoremIn the analysis of algorithms, the master theorem provides a cookbook solution in asymptotic terms for recurrence relations of types that occur in the analysis of many divide and conquer algorithms...
- matched edge
- matched vertex
- matching (graph theory)
- matrix
- matrix-chain multiplication problem
- max-heap property
- maximal independent setMaximal independent setIn graph theory, a maximal independent set or maximal stable set is an independent set that is not a subset of any other independent set. That is, it is a set S such that every edge of the graph has at least one endpoint not in S and every vertex not in S has at least one neighbor in S...
- maximally connected component
- Maximal Shift
- maximum bipartite matching
- maximum-flow problem
- MAX-SNP
- Mealy machineMealy machineIn the theory of computation, a Mealy machine is a finite-state machine whose output values are determined both by its current state and the current inputs. The outputs change asynchronously with respect to the clock, meaning that the outputs change at unpredictable times, making timing analysis...
- meanMeanIn statistics, mean has two related meanings:* the arithmetic mean .* the expected value of a random variable, which is also called the population mean....
- medianMedianIn probability theory and statistics, a median is described as the numerical value separating the higher half of a sample, a population, or a probability distribution, from the lower half. The median of a finite list of numbers can be found by arranging all the observations from lowest value to...
- meld (data structures)
- memoizationMemoizationIn computing, memoization is an optimization technique used primarily to speed up computer programs by having function calls avoid repeating the calculation of results for previously processed inputs...
- merge algorithmMerge algorithmMerge algorithms are a family of algorithms that run sequentially over multiple sorted lists, typically producing more sorted lists as output. This is well-suited for machines with tape drives...
- merge sortMerge sortMerge sort is an O comparison-based sorting algorithm. Most implementations produce a stable sort, meaning that the implementation preserves the input order of equal elements in the sorted output. It is a divide and conquer algorithm...
- meromorphic functionMeromorphic functionIn complex analysis, a meromorphic function on an open subset D of the complex plane is a function that is holomorphic on all D except a set of isolated points, which are poles for the function...
- metaheuristicMetaheuristicIn computer science, metaheuristic designates a computational method that optimizes a problem by iteratively trying to improve a candidate solution with regard to a given measure of quality. Metaheuristics make few or no assumptions about the problem being optimized and can search very large spaces...
- metaphoneMetaphoneMetaphone is a phonetic algorithm, an algorithm published 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 spelling and pronunciation to produce a more accurate...
- midrange
- Miller–Rabin primality test
- min-heap property
- minimal perfect hashing
- minimum bounding boxMinimum bounding boxThe minimum or smallest bounding or enclosing box for a point set in N dimensions is the box with the smallest measure within which all the points lie...
(MBB) - minimum cutMinimum cutIn graph theory, a minimum cut of a graph is a cut whose cutset has the smallest number of elements or smallest sum of weights possible...
- minimum path cover
- minimum spanning treeMinimum spanning treeGiven a connected, undirected graph, a spanning tree of that graph is a subgraph that is a tree and connects all the vertices together. A single graph can have many different spanning trees...
- minimum vertex cut
- mixed integer linear program
- modeMode (statistics)In statistics, the mode is the value that occurs most frequently in a data set or a probability distribution. In some fields, notably education, sample data are often called scores, and the sample mode is known as the modal score....
- model checkingModel checkingIn computer science, model checking refers to the following problem:Given a model of a system, test automatically whether this model meets a given specification....
- model of computationModel of computationIn computability theory and computational complexity theory, a model of computation is the definition of the set of allowable operations used in computation and their respective costs...
- moderately exponential
- MODIFIND
- monotone priority queue
- monotonically decreasing
- monotonically increasing
- Monte Carlo algorithmMonte Carlo algorithmIn computing, a Monte Carlo algorithm is a randomized algorithm whose running time is deterministic, but whose output may be incorrect with a certain probability....
- Moore machineMoore machineIn the theory of computation, a Moore machine is a finite-state machine, whose output values are determined solely by its current state.-Name:The Moore machine is named after Edward F...
- Morris-Pratt
- move (finite-state machine transition)
- move-to-front heuristic
- move-to-root heuristic
- multi-commodity flow
- multigraphMultigraphIn mathematics, a multigraph or pseudograph is a graph which is permitted to have multiple edges, , that is, edges that have the same end nodes. Thus two vertices may be connected by more than one edge....
- multilayer grid file
- multiplication method
- multiprefix
- multiprocessor model
- multisetMultisetIn mathematics, the notion of multiset is a generalization of the notion of set in which members are allowed to appear more than once...
- multi suffix tree
- multiway decision
- multiway merge
- multiway search tree
- multiway tree
- Munkres' assignment algorithm
N
- naive string search
- nand
- n-ary function
- NCNC (complexity)In complexity theory, the class NC is the set of decision problems decidable in polylogarithmic time on a parallel computer with a polynomial number of processors. In other words, a problem is in NC if there exist constants c and k such that it can be solved in time O using O parallel processors...
- NC many-one reducibility
- nearest neighbor searchNearest neighbor searchNearest neighbor search , also known as proximity search, similarity search or closest point search, is an optimization problem for finding closest points in metric spaces. The problem is: given a set S of points in a metric space M and a query point q ∈ M, find the closest point in S to q...
- negationNegationIn logic and mathematics, negation, also called logical complement, is an operation on propositions, truth values, or semantic values more generally. Intuitively, the negation of a proposition is true when that proposition is false, and vice versa. In classical logic negation is normally identified...
- network flow (see flow networkFlow networkIn graph theory, a flow 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 Research, a directed graph is called a network, the vertices are called nodes and the edges are...
) - network flow problem
- next state
- NIST
- nodeNode (computer science)A node is a record consisting of one or more fields that are links to other nodes, and a data field. The link and data fields are often implemented by pointers or references although it is also quite common for the data to be embedded directly in the node. Nodes are used to build linked, often...
- nonbalanced merge
- nonbalanced merge sort
- nondeterministic
- nondeterministic algorithmNondeterministic algorithmIn computer science, a nondeterministic algorithm is an algorithm that can exhibit different behaviors on different runs, as opposed to a deterministic algorithm. There are several ways an algorithm may behave differently from run to run. A concurrent algorithm can perform differently on different...
- nondeterministic finite automaton
- nondeterministic finite state machineNondeterministic finite state machineIn the automata theory, a nondeterministic finite state machine or nondeterministic finite automaton is a finite state machine where from each state and a given input symbol the automaton may jump into several possible next states...
(NFA) - nondeterministic finite tree automaton (NFTA)
- nondeterministic polynomial time
- nondeterministic tree automaton
- nondeterministic Turing machine
- nonterminal node
- norLogical NORIn boolean logic, logical nor or joint denial is a truth-functional operator which produces a result that is the negation of logical or. That is, a sentence of the form is true precisely when neither p nor q is true—i.e. when both of p and q are false...
- notNegationIn logic and mathematics, negation, also called logical complement, is an operation on propositions, truth values, or semantic values more generally. Intuitively, the negation of a proposition is true when that proposition is false, and vice versa. In classical logic negation is normally identified...
- Not So Naive
- NPNP (complexity)In computational complexity theory, NP is one of the most fundamental complexity classes.The abbreviation NP refers to "nondeterministic polynomial time."...
- NP-completeNP-completeIn computational complexity theory, the complexity class NP-complete is a class of decision problems. A decision problem L is NP-complete if it is in the set of NP problems so that any given solution to the decision problem can be verified in polynomial time, and also in the set of NP-hard...
- NP-complete language
- NP-hardNP-hardNP-hard , in computational complexity theory, is a class of problems that are, informally, "at least as hard as the hardest problems in NP". A problem H is NP-hard if and only if there is an NP-complete problem L that is polynomial time Turing-reducible to H...
- n queens
- nullary function
- null tree
- NYSIISNew York State Identification and Intelligence SystemThe New York State Identification and Intelligence System Phonetic Code, commonly known as NYSIIS, is a phonetic algorithm devised in 1970 as part of the New York State Identification and Intelligence System...
O
- objective function
- occurrence
- octreeOctreeAn octree is a tree data structure in which each internal node has exactly eight children. Octrees are most often used to partition a three dimensional space by recursively subdividing it into eight octants. Octrees are the three-dimensional analog of quadtrees. The name is formed from oct + tree,...
- offline algorithm
- offset (computer science)
- omegaOmegaOmega is the 24th and last letter of the Greek alphabet. In the Greek numeric system, it has a value of 800. The word literally means "great O" , as opposed to omicron, which means "little O"...
- omicronOmicronOmicron is the 15th letter of the Greek alphabet. In the system of Greek numerals it has a value of 70. It is rarely used in mathematics because it is indistinguishable from the Latin letter O and easily confused with the digit 0...
- one-based indexing
- one-dimensional
- online algorithmOnline algorithmIn computer science, an online algorithm is one that can process its input piece-by-piece in a serial fashion, i.e., in the order that the input is fed to the algorithm, without having the entire input available from the start. In contrast, an offline algorithm is given the whole problem data from...
- open addressingOpen addressingOpen addressing, or closed hashing, is a method of collision resolution in hash tables. With this method a hash collision is resolved by probing, or searching through alternate locations in the array until either the target record is found, or an unused array slot is found, which indicates that...
- optimalOptimization (mathematics)In mathematics, computational science, or management science, mathematical optimization refers to the selection of a best element from some set of available alternatives....
- 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 problemOptimization (mathematics)In mathematics, computational science, or management science, mathematical optimization refers to the selection of a best element from some set of available alternatives....
- orLogical disjunctionIn logic and mathematics, a two-place logical connective or, is a logical disjunction, also known as inclusive disjunction or alternation, that results in true whenever one or more of its operands are true. E.g. in this context, "A or B" is true if A is true, or if B is true, or if both A and B are...
- oracle set
- oracle tape
- oracle Turing machine
- Orders of approximationOrders of approximationIn science, engineering, and other quantitative disciplines, orders of approximation refer to formal or informal terms for how precise an approximation is, and to indicate progressively more refined approximations: in increasing order of precision, a zeroth order approximation, a first order...
- 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 packingSet packingSet packing is a classical NP-complete problem in computational complexity theory and combinatorics, and was one of Karp's 21 NP-complete problems.Suppose we have a finite set S and a list of subsets of S...
) - padding argumentPadding argumentIn computational complexity theory, the padding argument is a tool to conditionally prove that if some complexity classes are equal, then some other bigger classes are also equal.- Example :If P is equal to NP then EXP is equal to NEXP...
- pagodaPagodaA pagoda is the general term in the English language for a tiered tower with multiple eaves common in Nepal, India, China, Japan, Korea, Vietnam and other parts of Asia. Some pagodas are used as Taoist houses of worship. Most pagodas were built to have a religious function, most commonly Buddhist,...
- pairing heapPairing heapA pairing heaps is a type of heap data structure with relatively simple implementation and excellent practical amortized performance. However, it has proven very difficult to determine the precise asymptotic running time of pairing heaps....
- PAM (point access method)
- parallel computation thesisParallel computation thesisIn computational complexity theory, the parallel computation thesis is a hypothesis which states that the time used by a parallel machine is polynomially related to the space used by a sequential machine...
- parallel prefix computation
- Parallel Random Access MachineParallel Random Access MachineIn computer science, Parallel Random Access Machine is a shared memory abstract machine. As its name indicates, the PRAM was intended as the parallel computing analogy to the random access machine...
(PRAM) - parametric searching
- parentParentA parent is a caretaker of the offspring in their own species. In humans, a parent is of a child . Children can have one or more parents, but they must have two biological parents. Biological parents consist of the male who sired the child and the female who gave birth to the child...
- partial functionPartial functionIn mathematics, a partial function from X to Y is a function ƒ: X' → Y, where X' is a subset of X. It generalizes the concept of a function by not forcing f to map every element of X to an element of Y . If X' = X, then ƒ is called a total function and is equivalent to a function...
- partially decidable problem
- partially dynamic graph problem
- partially ordered setPartially ordered setIn mathematics, especially order theory, a partially ordered set formalizes and generalizes the intuitive concept of an ordering, sequencing, or arrangement of the elements of a set. A poset consists of a set together with a binary relation that indicates that, for certain pairs of elements in the...
- partially persistent data structure
- partial order
- partial recursive function
- partition (set theory)
- passive data structure
- patience sortingPatience sortingPatience sorting is a sorting algorithm, based on a solitaire card game, that has the property of being able to efficiently compute the length of a longest increasing subsequence in a given array.-The card game:...
- path (graph theory)Path (graph theory)In graph theory, a path in a graph is a sequence of vertices such that from each of its vertices there is an edge to the next vertex in the sequence. A path may be infinite, but a finite path always has a first vertex, called its start vertex, and a last vertex, called its end vertex. Both of them...
- path coverPath coverGiven a directed graph G = , a path cover is a set of directed paths such that every vertex v ∈ V belongs to at least one path...
- path system problem
- Patricia tree
- patternPatternA pattern, from the French patron, is a type of theme of recurring events or objects, sometimes referred to as elements of a set of objects.These elements repeat in a predictable manner...
- pattern element
- P-completeP-completeIn complexity theory, the notion of P-complete decision problems is useful in the analysis of both:# which problems are difficult to parallelize effectively, and;# which problems are difficult to solve in limited space....
- PCPPhencyclidinePhencyclidine , commonly initialized as PCP and known colloquially as angel dust, is a recreational dissociative drug...
- Peano curve
- Pearson's hash
- perfect binary tree
- perfect hashing
- perfect k-ary tree
- perfect matching
- perfect shuffle
- performance guarantee
- performance ratio
- permutationPermutationIn mathematics, the notion of permutation is used with several slightly different meanings, all related to the act of permuting objects or values. Informally, a permutation of a set of objects is an arrangement of those objects into a particular order...
- persistent data structurePersistent data structureIn computing, a persistent data structure is a data structure which always preserves the previous version of itself when it is modified; such data structures are effectively immutable, as their operations do not update the structure in-place, but instead always yield a new updated structure...
- phonetic coding
- pile (data structure)Pile (data structure)A pile is an abstract data structure for storing data in a loosely ordered way. There are two different usages of the term; one refers to an ordered deque, the other to an improved heap.-Ordered deque:...
- pipelined divide and conquer
- planar graphPlanar graphIn graph theory, a planar graph is a graph that can be embedded in the plane, i.e., it can be drawn on the plane in such a way that its edges intersect only at their endpoints...
- planarization
- planar straight-line graphPlanar straight-line graphPlanar straight-line graph is a term used in computational geometry for an embedding of a planar graph in the plane such that its edges are mapped into straight line segments...
- PLOP-hashing
- point access method
- pointer jumping
- pointer machinePointer machineIn theoretical computer science a pointer machine is an "atomistic" abstract computational machine model akin to the Random access machine....
- poissonization
- polychotomyPolychotomyPolychotomy is a division or separation into many parts or classes which are static and not temporally dependent due to evolution. Polychotomy can be thought of as a generalization of dichotomy, which is a polychotomy of exactly two parts.-Examples of Usage:*****...
- polyhedronPolyhedronIn elementary geometry a polyhedron is a geometric solid in three dimensions with flat faces and straight edges...
- polylogarithmicPolylogarithmicA polylogarithmic function in n is a polynomial in the logarithm of n,In computer science, polylogarithmic functions occur as the order of memory used by some algorithms .All polylogarithmic functions are...
- polynomialPolynomialIn mathematics, a polynomial is an expression of finite length constructed from variables and constants, using only the operations of addition, subtraction, multiplication, and non-negative integer exponents...
- polynomial-time approximation schemePolynomial-time approximation schemeIn computer science, a polynomial-time approximation scheme is a type of approximation algorithm for optimization problems ....
(PTAS) - polynomial hierarchyPolynomial hierarchyIn computational complexity theory, the polynomial hierarchy is a hierarchy of complexity classes that generalize the classes P, NP and co-NP to oracle machines...
- polynomial time
- polynomial-time Church–Turing thesisChurch–Turing thesisIn computability theory, the Church–Turing thesis is a combined hypothesis about the nature of functions whose values are effectively calculable; in more modern terms, algorithmically computable...
- polynomial-time reductionPolynomial-time reductionIn computational complexity theory a polynomial-time reduction is a reduction which is computable by a deterministic Turing machine in polynomial time. If it is a many-one reduction, it is called a polynomial-time many-one reduction, polynomial transformation, or Karp reduction...
- polyphase merge
- polyphase merge sortPolyphase merge sortA polyphase merge sort is an algorithm which decreases the number of runs at every iteration of the main loop by merging runs into larger runs. It is used for external sorting.- Ordinary merge sort :...
- polytopePolytopeIn elementary geometry, a polytope is a geometric object with flat sides, which exists in any general number of dimensions. A polygon is a polytope in two dimensions, a polyhedron in three dimensions, and so on in higher dimensions...
- poset
- postfix traversal
- Post machine (see Post–Turing machine)
- postman's sort
- postorder traversal
- Post's correspondence problem
- potential function (see potential methodPotential methodIn computational complexity theory, the potential method is a method used to analyze the amortized time and space complexity of a data structure, a measure of its performance over sequences of operations that smooths out the cost of infrequent but expensive operations.-Definition of amortized...
) - predicate
- prefix
- prefix codePrefix codeA prefix code is a type of code system distinguished by its possession of the "prefix property"; which states that there is no valid code word in the system that is a prefix of any other valid code word in the set...
- prefix computation
- prefix sumPrefix sumIn computer science, the prefix sum, or scan, of a sequence of numbers is a second sequence of numbers , the sums of prefixes of the input sequence:-Parallel algorithm:A prefix sum can be calculated in parallel by the following steps....
- prefix traversal
- preorder traversal
- primary clusteringPrimary clusteringPrimary clustering is the tendency for certain open-addressing hash tables collision resolution schemes to create long sequences of filled slots...
- primitive recursive
- Prim's algorithmPrim's algorithmIn computer science, Prim's algorithm is a greedy algorithm that finds a minimum spanning tree for a connected weighted undirected graph. This means it finds a subset of the edges that forms a tree that includes every vertex, where the total weight of all the edges in the tree is minimized...
- principle of optimality
- priority queuePriority queueA priority queue is an abstract data type in computer programming.It is exactly like a regular queue or stack data structure, but additionally, each element is associated with a "priority"....
- prisoner's dilemmaPrisoner's dilemmaThe prisoner’s dilemma is a canonical example of a game, analyzed in game theory that shows why two individuals might not cooperate, even if it appears that it is in their best interest to do so. It was originally framed by Merrill Flood and Melvin Dresher working at RAND in 1950. Albert W...
- PRNG
- probabilistic algorithm
- probabilistically checkable proof
- probabilistic Turing machineProbabilistic Turing machineIn computability theory, a probabilistic Turing machine is a non-deterministic Turing machine which randomly chooses between the available transitions at each point according to some probability distribution....
- probe sequence
- Procedure (computer science)
- process algebra
- proper (see proper subset)
- proper binary tree
- proper coloring
- proper subset
- property listProperty listIn the Mac OS X, iOS, NeXTSTEP, and GNUstep programming frameworks, property list files are files that store serialized objects. Property list files use the filename extension .plist, and thus are often referred to as p-list files....
- prune and searchPrune and searchPrune and search is a method of solving optimization problems suggested by Nimrod Megiddo in 1983. The basic idea of the method is a recursive procedure in which at each step the input size is reduced by a constant factor 0 ...
- pseudo-random number generator
- pth order Fibonacci numbers
- P-tree
- purely functional language
- pushdown automatonPushdown automatonIn automata theory, a pushdown automaton is a finite automaton that can make use of a stack containing data.- Operation :Pushdown automata differ from finite state machines in two ways:...
(PDA) - pushdown transducer
- p-way merge sort
Q
- qm sort
- q sort
- quadratic probingQuadratic probingQuadratic probing is a scheme in computer programming for resolving collisions in hash tables.It is an open addressing method to handle overflows after a collision takes place in some bucket of a hash table....
- quadtreeQuadtreeA quadtree is a tree data structure in which each internal node has exactly four children. Quadtrees are most often used to partition a two dimensional space by recursively subdividing it into four quadrants or regions. The regions may be square or rectangular, or may have arbitrary shapes. This...
- quadtree complexity theorem
- quad trie
- quantum computation
- queue
- quick search
- quicksort
R
- Rabin–Karp string search algorithm
- radix quicksort
- radix sortRadix sortIn computer science, radix sort is a non-comparative integer sorting algorithm that sorts data with integer keys by grouping keys by the individual digits which share the same significant position and value...
- ragged matrix
- Raita algorithm
- random access machineRandom access machineIn computer science, random access machine is an abstract machine in the general class of register machines. The RAM is very similar to the counter machine but with the added capability of 'indirect addressing' of its registers...
- randomizationRandomizationRandomization is the process of making something random; this means:* Generating a random permutation of a sequence .* Selecting a random sample of a population ....
- randomized algorithmRandomized algorithmA randomized algorithm is an algorithm which employs a degree of randomness as part of its logic. The algorithm typically uses uniformly random bits as an auxiliary input to guide its behavior, in the hope of achieving good performance in the "average case" over all possible choices of random bits...
- randomized binary search tree
- randomized complexity
- randomized polynomial time
- randomized roundingRandomized roundingWithin computer science and operations research,many combinatorial optimization problems are computationally intractable to solve exactly ....
- randomized search tree
- Randomized-Select
- random number generator
- random sampling
- range (function)
- range sort
- Rank (graph theory)Rank (graph theory)In graph theory, a branch of mathematics, the rank of an undirected graph is defined as the number , where is the number of vertices and is the number of connected components of the graph...
- Ratcliff/Obershelp pattern recognition
- reachable
- rebalance
- recognizer
- rectangular matrix
- rectilinear
- rectilinear Steiner treeRectilinear Steiner treeThe rectilinear Steiner tree problem, minimum rectilinear Steiner tree problem , or rectilinear Steiner minimum tree problem is a variant of the geometric Steiner tree problem in the plane, in which the Euclidean distance is replaced with the rectilinear distance...
- recurrence equations
- recurrence relationRecurrence relationIn mathematics, a recurrence relation is an equation that recursively defines a sequence, once one or more initial terms are given: each further term of the sequence is defined as a function of the preceding terms....
- recursionRecursionRecursion is the process of repeating items in a self-similar way. For instance, when the surfaces of two mirrors are exactly parallel with each other the nested images that occur are a form of infinite recursion. The term has a variety of meanings specific to a variety of disciplines ranging from...
- recursion terminationRecursion terminationIn computing, Recursion termination is when certain conditions are met and the recursive algorithm ceases calling itself and begins to return values. This happens only if with every recursive call the recursive algorithm changes its state and moves towards the base case. Cases that satisfy the...
- recursion tree
- recursive (computer science)
- recursive data structure
- recursive doubling
- recursive languageRecursive languageIn mathematics, logic and computer science, a formal language is called recursive if it is a recursive subset of the set of all possible finite sequences over the alphabet of the language...
- recursively enumerable languageRecursively enumerable languageIn mathematics, logic and computer science, a recursively enumerable language is a type of formal language which is also called partially decidable or Turing-acceptable. It is known as a type-0 language in the Chomsky hierarchy of formal languages...
- recursively solvable
- red-black treeRed-black treeA red–black tree is a type of self-balancing binary search tree, a data structure used in computer science, typically to implement associative arrays. The original structure was invented in 1972 by Rudolf Bayer and named "symmetric binary B-tree," but acquired its modern name in a paper in 1978 by...
- reduced basis
- reduced digraph
- reduced ordered binary decision diagram (ROBDD)
- reductionReduction (complexity)In computability theory and computational complexity theory, a reduction is a transformation of one problem into another problem. Depending on the transformation used this can be used to define complexity classes on a set of problems....
- reflexive relationReflexive relationIn mathematics, a reflexive relation is a binary relation on a set for which every element is related to itself, i.e., a relation ~ on S where x~x holds true for every x in S. For example, ~ could be "is equal to".-Related terms:...
- regular decomposition
- rehashing
- relation (mathematics)Relation (mathematics)In set theory and logic, a relation is a property that assigns truth values to k-tuples of individuals. Typically, the property describes a possible connection between the components of a k-tuple...
- relational structure
- relative performance guarantee
- relaxationRelaxation technique (mathematics)In mathematical optimization and related fields, relaxation is a modeling strategy. A relaxation is an approximation of a difficult problem by a nearby problem that is easier to solve...
- relaxed balance
- rescalable
- restricted universe sort
- result cache
- Reverse Colussi
- Reverse Factor
- R-file
- Rice's method
- right rotation
- right-threaded tree
- RNGRngRng can stand for* Random number generator* Rng , an algebraic structure similar to rings but without a multiplicative identity* .rng, the file extension of RELAX NG...
- rootRootIn vascular plants, the root is the organ of a plant that typically lies below the surface of the soil. This is not always the case, however, since a root can also be aerial or aerating . Furthermore, a stem normally occurring below ground is not exceptional either...
- root balance
- rooted tree
- rotate left
- rotate right
- rotationRotationA rotation is a circular movement of an object around a center of rotation. A three-dimensional object rotates always around an imaginary line called a rotation axis. If the axis is within the body, and passes through its center of mass the body is said to rotate upon itself, or spin. A rotation...
- rough graph
- RPRP (complexity)In complexity theory, RP is the complexity class of problems for which a probabilistic Turing machine exists with these properties:* It always runs in polynomial time in the input size...
- R+-treeR+ treeAn R+ tree is a method for looking up data using a location, often coordinates, and often for locations on the surface of the earth. Searching on one number is a solved problem; searching on two or more, and asking for locations that are nearby in both x and y directions, requires craftier...
- R*-tree
- R-treeR-treeR-trees are tree data structures used for spatial access methods, i.e., for indexing multi-dimensional information such as geographical coordinates, rectangles or polygons. The R-tree was proposed by Antonin Guttman in 1984 and has found significant use in both research and real-world applications...
- run timeRun timeRun time, run-time or runtime may refer to:* Run time , the period during which a computer program is executing* Run-time system, software designed to support the execution of computer programs...
S
- saguaro stack
- saturated edge
- SBB tree
- scanPrefix sumIn computer science, the prefix sum, or scan, of a sequence of numbers is a second sequence of numbers , the sums of prefixes of the input sequence:-Parallel algorithm:A prefix sum can be calculated in parallel by the following steps....
- scapegoat treeScapegoat treeIn computer science, a scapegoat tree is a self-balancing binary search tree, discovered by Arne Anderson and again by Igal Galperin and Ronald L. Rivest...
- search algorithmSearch algorithmIn computer science, a search algorithm is an algorithm for finding an item with specified properties among a collection of items. The items may be stored individually as records in a database; or may be elements of a search space defined by a mathematical formula or procedure, such as the roots...
- search treeSearch treeIn computer science, a search tree is a binary tree data structure in whose nodes data values are stored from some ordered set, in such a way that in-order traversal of the tree visits the nodes in ascending order of the stored values...
- search tree property
- secant search
- secondary clustering
- memory segmentMemory segmentx86 memory segmentation refers to the implementation of memory segmentation on the x86 architecture. Memory is divided into portions that may be addressed by a single index register without changing a 16-bit segment selector. In real mode or V86 mode, a segment is always 64 kilobytes in size . In...
- Select algorithm
- select and partition
- selection problem
- selection sortSelection sortSelection sort is a sorting algorithm, specifically an in-place comparison sort. It has O time complexity, making it inefficient on large lists, and generally performs worse than the similar insertion sort...
- select kth element
- select mode
- self-loop
- self-organizing heuristic
- self-organizing listSelf-organizing listA self-organizing list is a list that reorders its elements based on some self-organizing heuristic to improve average access time.The aim of Self organizing list is to improve efficiency of linear search by moving more frequently accessed items towards the head of the list.The "Self Organizing...
- self-organizing sequential search
- semidefinite programmingSemidefinite programmingSemidefinite programming is a subfield of convex optimization concerned with the optimization of a linear objective functionover the intersection of the cone of positive semidefinite matrices with an affine space, i.e., a spectrahedron....
- separate chaining hashing
- separation theorem
- sequential search
- Set (computer science)Set (computer science)In computer science, a set is an abstract data structure that can store certain values, without any particular order, and no repeated values. It is a computer implementation of the mathematical concept of a finite set...
- set cover
- set packingSet packingSet packing is a classical NP-complete problem in computational complexity theory and combinatorics, and was one of Karp's 21 NP-complete problems.Suppose we have a finite set S and a list of subsets of S...
- shadow heap
- shadow merge
- shadow merge insert
- shaker sort
- Shannon–Fano codingShannon–Fano codingIn the field of data compression, Shannon–Fano coding, named after Claude Elwood Shannon and Robert Fano, is a technique for constructing a prefix code based on a set of symbols and their probabilities...
- shared memoryShared memoryIn computing, shared memory is memory that may be simultaneously accessed by multiple programs with an intent to provide communication among them or avoid redundant copies. Depending on context, programs may run on a single processor or on multiple separate processors...
- Shell sortShell sortShellsort, also known as Shell sort or Shell's method is an in-place comparison sort. It generalizes an exchanging sort, such as insertion or bubble sort, by allowing the comparison and exchange of elements that lie far apart. Its first version was published by Donald Shell in 1959. The running...
- Shift-Or
- Shor's algorithmShor's algorithmShor's algorithm, named after mathematician Peter Shor, is a quantum algorithm for integer factorization formulated in 1994...
- shortcutting
- shortest common supersequenceShortest common supersequenceThis shortest common supersequence problem is closely related to the longest common subsequence problem. Given two sequences X = and Y = , a sequence U = is a common supersequence of X and Y if U is a supersequence of both X and Y...
- shortest common superstring
- shortest path
- shortest spanning tree
- shuffleShuffleShuffling is a procedure used to randomize a deck of playing cards to provide an element of chance in card games. Shuffling is often followed by a cut, to help ensure that the shuffler has not manipulated the outcome.-Shuffling techniques:...
- shuffle sort
- siblingSiblingSiblings are people who share at least one parent. A male sibling is called a brother; and a female sibling is called a sister. In most societies throughout the world, siblings usually grow up together and spend a good deal of their childhood socializing with one another...
- Sierpiński curveSierpinski curveSierpiński curves are a recursively defined sequence of continuous closed plane fractal curves discovered by Wacław Sierpiński, which in the limit n \rightarrow \infty completely fill the unit square: thus their limit curve, also called the Sierpiński curve, is an example of a space-filling...
- Sierpinski triangleSierpinski triangleThe Sierpinski triangle , also called the Sierpinski gasket or the Sierpinski Sieve, is a fractal and attractive fixed set named after the Polish mathematician Wacław Sierpiński who described it in 1915. However, similar patterns appear already in the 13th-century Cosmati mosaics in the cathedral...
- sieve of EratosthenesSieve of EratosthenesIn mathematics, the sieve of Eratosthenes , one of a number of prime number sieves, is a simple, ancient algorithm for finding all prime numbers up to a specified integer....
- sift up
- signatureSignatureA signature is a handwritten depiction of someone's name, nickname, or even a simple "X" that a person writes on documents as a proof of identity and intent. The writer of a signature is a signatory. Similar to a handwritten signature, a signature work describes the work as readily identifying...
- Simon's algorithmSimon's algorithmSimon's algorithm, conceived by Daniel Simon in 1994, is a quantum algorithm which solves a black-box problem exponentially faster than any classical algorithm, including probabilistic algorithms...
- simple merge
- simple pathPath (graph theory)In graph theory, a path in a graph is a sequence of vertices such that from each of its vertices there is an edge to the next vertex in the sequence. A path may be infinite, but a finite path always has a first vertex, called its start vertex, and a last vertex, called its end vertex. Both of them...
- simple uniform hashing
- simplex communicationSimplex communicationSimplex communication refers to communication that occurs in one direction only. Two definitions have arisen over time: a common definition, which is used in ANSI standard and elsewhere, and an ITU-T definition...
- simulated annealingSimulated annealingSimulated annealing is a generic probabilistic metaheuristic for the global optimization problem of locating a good approximation to the global optimum of a given function in a large search space. It is often used when the search space is discrete...
- 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
- sinkSinkA sink is a bowl-shaped plumbing fixture used for washing hands, for dishwashing or other purposes. Sinks generally have taps that supply hot and cold water and may include a spray feature to be used for faster rinsing...
- sinking sort
- skd-tree
- skew symmetry
- skip listSkip listA skip list is a data structure for storing a sorted list of items using a hierarchy of linked lists that connect increasingly sparse subsequences of the items...
- skip search
- slope selection
- Smith algorithm
- Smith–Waterman algorithm
- smoothsortSmoothsortSmoothsort is a comparison-based sorting algorithm. It is a variation of heapsort developed by Edsger Dijkstra in 1981. Like heapsort, smoothsort's upper bound is O...
- solvable problem
- sort algorithm
- sorted arraySorted arrayA sorted array is an array data structure in which each element is sorted in numerical, alphabetical, or some other order, and placed at equally spaced addresses in computer memory. It is typically used in computer science to implement static lookup tables to hold multiple values which has the same...
- sorted list
- sort in place
- sort merge
- soundexSoundexSoundex is a phonetic algorithm for indexing names by sound, as pronounced in English. The goal is for homophones to be encoded to the same representation so that they can be matched despite minor differences in spelling. The algorithm mainly encodes consonants; a vowel will not be encoded unless...
- space-constructible function
- spanning treeSpanning tree (mathematics)In the mathematical field of graph theory, a spanning tree T of a connected, undirected graph G is a tree composed of all the vertices and some of the edges of G. Informally, a spanning tree of G is a selection of edges of G that form a tree spanning every vertex...
- sparse graph
- sparse matrixSparse matrixIn the subfield of numerical analysis, a sparse matrix is a matrix populated primarily with zeros . The term itself was coined by Harry M. Markowitz....
- sparsification
- sparsity
- spatial access method
- spectral test
- splay treeSplay treeA splay tree is a self-adjusting binary search tree with the additional property that recently accessed elements are quick to access again. It performs basic operations such as insertion, look-up and removal in O amortized time. For many sequences of nonrandom operations, splay trees perform...
- SPMDSPMDIn computing, SPMD is a technique employed to achieve parallelism; it is a subcategory of MIMD. Tasks are split up and run simultaneously on multiple processors with different input in order to obtain results faster. SPMD is the most common style of parallel programming...
- square matrix
- square rootSquare rootIn mathematics, a square root of a number x is a number r such that r2 = x, or, in other words, a number r whose square is x...
- SST (shortest spanning tree)
- stableNumerical stabilityIn the mathematical subfield of numerical analysis, numerical stability is a desirable property of numerical algorithms. The precise definition of stability depends on the context, but it is related to the accuracy of the algorithm....
- stack (data structure)Stack (data structure)In computer science, a stack is a last in, first out abstract data type and linear data structure. A stack can have any abstract data type as an element, but is characterized by only three fundamental operations: push, pop and stack top. The push operation adds a new item to the top of the stack,...
- stack treeStack treeA stack tree is a binary tree where no node other than the root has more than one non-leaf child. As the elements of a binary tree have 2 children, this means that one points to the next node and one points to a data element, or NULL. Hence the tree is essentially a singly linked linked list, with...
- star-shaped polygonStar-shaped polygonA star-shaped polygon is a polygonal region in the plane which is a star domain, i.e., a polygon P is star-shaped, if there exists a point z such that for each point p of P the segment zp lies entirely within P.The set of all points z with the described property is called the kernel of...
- start state
- stateState (computer science)In computer science and automata theory, a state is a unique configuration of information in a program or machine. It is a concept that occasionally extends into some forms of systems programming such as lexers and parsers....
- state machine
- state transition
- static data structure
- static Huffman encoding
- s-t cut
- st-digraph
- Steiner minimum tree
- Steiner point
- Steiner ratio
- Steiner treeSteiner treeThe Steiner tree problem, or the minimum Steiner tree problem, named after Jakob Steiner, is a problem in combinatorial optimization, which may be formulated in a number of settings, with the common part being that it is required to find the shortest interconnect for a given set of objects.The...
- Steiner vertex
- Steinhaus–Johnson–Trotter algorithm
- Stirling's approximationStirling's approximationIn mathematics, Stirling's approximation is an approximation for large factorials. It is named after James Stirling.The formula as typically used in applications is\ln n! = n\ln n - n +O\...
- Stirling's formula
- stooge sortStooge sortStooge sort is a recursive sorting algorithm with a time complexity of ).The running time of the algorithm is thus extremely slow comparedto efficient sorting algorithms, such as Merge sort, and is even slower than Bubble sort, a canonical example of a fairly inefficient and simple sort.The...
- straight-line drawing
- strand sortStrand sortStrand sort is a sorting algorithm. It works by repeatedly pulling sorted sublists out of the list to be sorted and merging them with a result array...
- strictly decreasing
- strictly increasing
- strictly lower triangular matrix
- strictly upper triangular matrix
- stringString (computer science)In formal languages, which are used in mathematical logic and theoretical computer science, a string is a finite sequence of symbols that are chosen from a set or alphabet....
- string editing problem
- string matching
- string matching on ordered alphabets
- string matching with errors
- string matching with mismatches
- string searching
- strip packing
- strongly connected componentStrongly connected componentA directed graph is called strongly connected if there is a path from each vertex in the graph to every other vertex. In particular, this means paths in each direction; a path from a to b and also a path from b to a....
- strongly connected graph
- strongly NP-hard
- subadditive ergodic theorem
- subgraph isomorphism
- sublinear time algorithm
- subsequenceSubsequenceIn mathematics, a subsequence is a sequence that can be derived from another sequence by deleting some elements without changing the order of the remaining elements...
- subsetSubsetIn mathematics, especially in set theory, a set A is a subset of a set B if A is "contained" inside B. A and B may coincide. The relationship of one set being a subset of another is called inclusion or sometimes containment...
- substringSubstringA subsequence, substring, prefix or suffix of a string is a subset of the symbols in a string, where the order of the elements is preserved...
- subtree
- suffix
- suffix arraySuffix arrayIn computer science, a suffix array is an array of integers giving the starting positions of suffixes of a string in lexicographical order.-Details:Consider the string...
- suffix automaton
- suffix treeSuffix treeIn computer science, a suffix tree is a data structure that presents the suffixes of a given string in a way that allows for a particularly fast implementation of many important string operations.The suffix tree for a string S is a tree whose edges are labeled with strings, such that each suffix...
- superimposed codeSuperimposed codeA superimposed code such as Zatocoding is a kind of hash code that is popular in marginal punched-card systems.- marginal punched-card systems :Many names, some of them trademarked, have been used for marginal punched-card systems:...
- supersetSuperSetSuperSet Software was a group founded by friends and former Eyring Research Institute co-workers Drew Major, Dale Neibaur, Kyle Powell and later joined by Mark Hurst...
- supersink
- supersource
- symmetric relationSymmetric relationIn mathematics, a binary relation R over a set X is symmetric if it holds for all a and b in X that if a is related to b then b is related to a.In mathematical notation, this is:...
- symmetrically linked list
- symmetric binary B-tree
- symmetric set difference
- symmetry breakingSymmetry breakingSymmetry breaking in physics describes a phenomenon where small fluctuations acting on a system which is crossing a critical point decide the system's fate, by determining which branch of a bifurcation is taken. To an outside observer unaware of the fluctuations , the choice will appear arbitrary...
- symmetric min max heap
T
- tailTailThe tail is the section at the rear end of an animal's body; in general, the term refers to a distinct, flexible appendage to the torso. It is the part of the body that corresponds roughly to the sacrum and coccyx in mammals, reptiles, and birds...
- tail recursion
- target
- temporal logicTemporal logicIn logic, the term temporal logic is used to describe any system of rules and symbolism for representing, and reasoning about, propositions qualified in terms of time. In a temporal logic we can then express statements like "I am always hungry", "I will eventually be hungry", or "I will be hungry...
- terminal (see Steiner treeSteiner treeThe Steiner tree problem, or the minimum Steiner tree problem, named after Jakob Steiner, is a problem in combinatorial optimization, which may be formulated in a number of settings, with the common part being that it is required to find the shortest interconnect for a given set of objects.The...
) - terminal node
- ternary searchTernary searchA ternary search algorithm is a technique in computer science for finding the minimum or maximum of a unimodal function...
- ternary search treeTernary search treeIn computer science, a ternary search tree is a special trie data structure where the child nodes of a standard trie are ordered as a binary search tree. Searching for a string in a ternary search tree consists of a series of binary searches, one for each character in the string...
(TST) - text searching
- thetaThetaTheta is the eighth letter of the Greek alphabet, derived from the Phoenician letter Teth...
- threaded binary treeThreaded binary treeA threaded binary tree defined as follows:"A binary tree is threaded by making all right child pointers that would normally be null point to the inorder successor of the node, and all left child pointers that would normally be null point to the inorder predecessor of the node."A threaded binary...
- threaded tree
- three-dimensionalThree-dimensional spaceThree-dimensional space is a geometric 3-parameters model of the physical universe in which we live. These three dimensions are commonly called length, width, and depth , although any three directions can be chosen, provided that they do not lie in the same plane.In physics and mathematics, a...
- three-way merge sort
- three-way radix quicksort
- time-constructible function
- time/space complexity
- top-down radix sort
- top-down tree automaton
- top-node
- topological orderTopological orderIn physics, topological order is a new kind of order in a quantum state that is beyond the Landau symmetry-breaking description. It cannot be described by local order parameters and long range correlations...
- topological sort
- topology tree
- total function
- totally decidable language
- totally decidable problem
- totally undecidable problem
- total orderTotal orderIn set theory, a total order, linear order, simple order, or ordering is a binary relation on some set X. The relation is transitive, antisymmetric, and total...
- tour
- tournamentTournament (graph theory)A tournament is a directed graph obtained by assigning a direction for each edge in an undirected complete graph. That is, it is a directed graph in which every pair of vertices is connected by a single directed edge....
- towers of Hanoi
- tractable problem
- transducerTransducerA transducer is a device that converts one type of energy to another. Energy types include electrical, mechanical, electromagnetic , chemical, acoustic or thermal energy. While the term transducer commonly implies the use of a sensor/detector, any device which converts energy can be considered a...
- transition (see finite-state machine)
- transition function (of a finite-state machine or Turing machineTuring machineA Turing machine is a theoretical device that manipulates symbols on a strip of tape according to a table of rules. Despite its simplicity, a Turing machine can be adapted to simulate the logic of any computer algorithm, and is particularly useful in explaining the functions of a CPU inside a...
) - transitive relationTransitive relationIn mathematics, a binary relation R over a set X is transitive if whenever an element a is related to an element b, and b is in turn related to an element c, then a is also related to c....
- transitive closureTransitive closureIn mathematics, the transitive closure of a binary relation R on a set X is the transitive relation R+ on set X such that R+ contains R and R+ is minimal . If the binary relation itself is transitive, then the transitive closure will be that same binary relation; otherwise, the transitive closure...
- transitive reductionTransitive reductionIn mathematics, a transitive reduction of a binary relation R on a set X is a minimal relation R' on X such that the transitive closure of R' is the same as the transitive closure of R. If the transitive closure of R is antisymmetric and finite, then R' is unique...
- transpose sequential search
- travelling salesman problemTravelling salesman problemThe travelling salesman problem is an NP-hard problem in combinatorial optimization studied in operations research and theoretical computer science. Given a list of cities and their pairwise distances, the task is to find the shortest possible tour that visits each city exactly once...
(TSP) - treapTreapIn computer science, the treap and the randomized binary search tree are two closely related forms of binary search tree data structures that maintain a dynamic set of ordered keys and allow binary searches among the keys...
- tree
- tree automatonTree automatonA 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 of trees...
- tree contraction
- tree editing problem
- tree sortTree sortA tree sort is a sort algorithm that builds a binary search tree from the keys to be sorted, and then traverses the tree so that the keys come out in sorted order. Its typical use is when sorting the elements of a stream from a file...
- tree transducer
- tree traversalTree traversalIn computer science, tree-traversal refers to the process of visiting each node in a tree data structure, exactly once, in a systematic way. Such traversals are classified by the order in which the nodes are visited...
- triangle inequalityTriangle inequalityIn mathematics, the triangle inequality states that for any triangle, the sum of the lengths of any two sides must be greater than or equal to the length of the remaining side ....
- triconnected graph
- trieTrieIn computer science, a trie, or prefix tree, is an ordered tree data structure that is used to store an associative array where the keys are usually strings. Unlike a binary search tree, no node in the tree stores the key associated with that node; instead, its position in the tree defines the...
- trinary function
- tripartition
- Turbo-BM
- Turbo Reverse Factor
- Turing machineTuring machineA Turing machine is a theoretical device that manipulates symbols on a strip of tape according to a table of rules. Despite its simplicity, a Turing machine can be adapted to simulate the logic of any computer algorithm, and is particularly useful in explaining the functions of a CPU inside a...
- Turing reductionTuring reductionIn computability theory, a Turing reduction from a problem A to a problem B, named after Alan Turing, is a reduction which solves A, assuming B is already known . It can be understood as an algorithm that could be used to solve A if it had available to it a subroutine for solving B...
- Turing transducer
- twin grid file
- two-dimensional
- two-level grid file
- 2-3-4 tree2-3-4 treeIn computer science, a 2-3-4 tree is a self-balancing data structure that is commonly used to implement dictionaries...
- 2-3 tree2-3 treeIn computer science, a 2-3 tree is a type of data structure, a tree where every node with children has either two children and one data element or three children and two data elements...
- Two Way algorithm
- two-way linked list
- two-way merge sort
U
- unary functionUnary functionA unary function is a function that takes one argument. In computer science, a unary operator is a subset of unary function.Many of the elementary functions are unary functions, in particular the trigonometric functions and hyperbolic function are unary....
- unbounded knapsack problem (UKP)
- uncomputable function
- uncomputable problem
- undecidable language
- undecidable problemUndecidable problemIn computability theory and computational complexity theory, an undecidable problem is a decision problem for which it is impossible to construct a single algorithm that always leads to a correct yes-or-no answer....
- undirected graph
- uniform circuit complexity
- uniform circuit family
- uniform hashing
- uniform matrix
- unionUnion (computer science)In computer science, a union is a value that may have any of several representations or formats; or a data structure that consists of a variable which may hold such a value. Some programming languages support special data types, called union types, to describe such values and variables...
- union of automata
- universal hashingUniversal hashingUsing universal hashing refers to selecting a hash function at random from a family of hash functions with a certain mathematical property . This guarantees a low number of collisions in expectation, even if the data is chosen by an adversary...
- universal state
- universal Turing machineUniversal Turing machineIn computer science, a universal Turing machine is a Turing machine that can simulate an arbitrary Turing machine on arbitrary input. The universal machine essentially achieves this by reading both the description of the machine to be simulated as well as the input thereof from its own tape. Alan...
- universeUniverseThe Universe is commonly defined as the totality of everything that exists, including all matter and energy, the planets, stars, galaxies, and the contents of intergalactic space. Definitions and usage vary and similar terms include the cosmos, the world and nature...
- UnShuffle sortUnShuffle Sort-Introduction:The UnShuffle Sort is a distribution or merge sort which was developed by Art S. Kagel. UnShuffle is most efficient when sorting data which exhibits low entropy, in effect where the data is well ordered or contains sub-sequences of ordered items. It was first mentioned in an article...
- unsolvable problem
- unsorted list
- upper triangular matrix
V
- van Emde Boas priority queueVan Emde Boas treeA van Emde Boas tree , also known as a vEB tree, is a tree data structure which implements an associative array with m-bit integer keys. It performs all operations in O time...
- vehicle routing problemVehicle routing problemThe vehicle routing problem is a combinatorial optimization and integer programming problem seeking to service a number of customers with a fleet of vehicles. Proposed by Dantzig and Ramser in 1959, VRP is an important problem in the fields of transportation, distribution and logistics...
- Veitch diagram
- Venn diagramVenn diagramVenn diagrams or set diagrams are diagrams that show all possible logical relations between a finite collection of sets . Venn diagrams were conceived around 1880 by John Venn...
- vertexVertex (graph theory)In graph theory, a vertex or node is the fundamental unit out of which graphs are formed: an undirected graph consists of a set of vertices and a set of edges , while a directed graph consists of a set of vertices and a set of arcs...
- vertex coloring
- vertex connectivity
- vertex coverVertex coverIn the mathematical discipline of graph theory, a vertex cover of a graph is a set of vertices such that each edge of the graph is incident to at least one vertex of the set....
- vertical visibility map
- virtual hashing
- visibility map
- visible (geometry)
- Viterbi algorithmViterbi algorithmThe Viterbi algorithm is a dynamic programming algorithm for finding the most likely sequence of hidden states – called the Viterbi path – that results in a sequence of observed events, especially in the context of Markov information sources, and more generally, hidden Markov models...
- VP-treeVp-treeA vantage-point tree, or vp-tree is a BSP tree that segregates data in a metric space by choosing a position in the space and dividing the data points into two partitions: those that are nearer to the vantage point than a threshold, and those that are not...
- VRP (vehicle routing problemVehicle routing problemThe vehicle routing problem is a combinatorial optimization and integer programming problem seeking to service a number of customers with a fleet of vehicles. Proposed by Dantzig and Ramser in 1959, VRP is an important problem in the fields of transportation, distribution and logistics...
)
W
- walk
- weak cluster
- weak-heap
- weak-heap sort
- weight-balanced treeWeight-balanced treeA weight-balanced binary tree is a binary tree which is balanced based on knowledge of the probabilities of searching for each individual node. Within each subtree, the node with the highest weight appears at the root...
- weighted, directed graph
- weighted graph
- windowWindowA window is a transparent or translucent opening in a wall or door that allows the passage of light and, if not closed or sealed, air and sound. Windows are usually glazed or covered in some other transparent or translucent material like float glass. Windows are held in place by frames, which...
- witnessWitnessA witness is someone who has firsthand knowledge about an event, or in the criminal justice systems usually a crime, through his or her senses and can help certify important considerations about the crime or event. A witness who has seen the event first hand is known as an eyewitness...
- work-depth model
- work-efficient
- work-preserving
- worst caseWorst CaseWorst Case is the 3rd book in the Michael Bennett series from James Patterson and Michael Ledwidge.-Plot summary:NYPD Detective Mike Bennett and his new partner FBI Special Agent Emily Parker are on the trail of Francis Mooney, a Manhattan trusts and estates lawyer with terminal lung cancer...
- worst-case cost
- worst-case minimum access
Z
- Zeller's congruenceZeller's congruenceZeller's congruence is an algorithm devised by Christian Zeller to calculate the day of the week for any Julian or Gregorian calendar date.- Formula :For the Gregorian calendar, Zeller's congruence is...
- 0-ary function
- 0-based indexing
- 0/1 knapsack problem
- Zhu–Takaoka string matching algorithm
- Zipfian distribution
- Zipf's law
- zipperZipperA zipper is a commonly used device for temporarily joining two edges of fabric...
- ZPP