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
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 type
    Abstract data type
    In 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)-tree
    In 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 sort
    Adaptive heap sort
    The 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 coding
    Adaptive Huffman coding
    Adaptive 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 tree
    Adaptive k-d tree
    An adaptive k-d tree is a tree for multidimensional points where successive levels may be split along different dimensions....

  • adaptive sort
    Adaptive sort
    A sorting algorithm falls into the adaptive sort family if it takes advantage of existing order in its input. It benefits from the presortedness in the input sequence – or a limited amount of disorder for various definitions of measures of disorder – and sorts faster...

  • address-calculation sort
  • adjacency-list representation
  • adjacency-matrix representation
  • adjacent
    Adjacent
    Adjacent 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....

  • adversary
    Adversary (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...

  • algorithm
    Algorithm
    In 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 BSTW
    Algorithm BSTW
    The 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 efficiency
    Algorithmic efficiency
    In 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 machine
    Alternating Turing machine
    In 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 sort
    American flag sort
    An 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
  • ancestor
    Ancestor
    An ancestor is a parent or the parent of an ancestor ....

  • and
    Logical conjunction
    In 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....

  • ANSI
    American National Standards Institute
    The 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...

  • antichain
    Antichain
    In 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 relation
    Antisymmetric relation
    In 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,...

  • AP
    Arithmetic progression
    In 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 matching
    Approximate string matching
    In computing, approximate string matching is the technique of finding strings that match a pattern approximately...

  • approximation algorithm
    Approximation algorithm
    In 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...

  • arborescence
    Arborescence (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 coding
    Arithmetic coding
    Arithmetic 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 problem
    Assignment problem
    The assignment problem is one of the fundamental combinatorial optimization problems in the branch of optimization or operations research in mathematics...

  • association list
    Association list
    In computer programming and particularly in Lisp, an association list, often referred to as an alist, is a linked list in which each list element comprises a key and a value. The association list is said to associate the value with the key...

  • associative
  • associative array
    Associative array
    In 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
  • automaton
    Automata theory
    In 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 tree
    AVL tree
    In 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 semantics
    Axiomatic semantics
    Axiomatic semantics is an approach based on mathematical logic to proving the correctness of computer programs. It is closely related to Hoare logic....


B

  • backtracking
    Backtracking
    Backtracking 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...

  • bag
    Multiset
    In 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 tree
    Self-balancing binary search tree
    In 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 file
    BANG file
    A 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
  • BDD
    Binary decision diagram
    In 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 law
    Benford's law
    Benford'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 search
    Best-first search
    Best-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 component
    Biconnected component
    In 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 graph
    Biconnected graph
    In 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 function
    Binary function
    In 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 algorithm
    Binary GCD algorithm
    The 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 heap
    Binary heap
    A 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 relation
    Binary relation
    In 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 tree
    Binary search tree
    In 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 tree
    Binary tree
    In 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 heap
    Binomial heap
    In 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 problem
    Bin packing problem
    In 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
  • bintree
    Binary tree
    In 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 graph
    Bipartite graph
    In 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
  • bisector
    Bisection method
    The 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 tree
    Bk tree
    A 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 filter
    Bloom filter
    A 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)
  • bogosort
    Bogosort
    In 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
  • boolean
    Boolean datatype
    In 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 expression
    Boolean expression
    In 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 algorithm
    Boyer–Moore string search algorithm
    The 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 algorithm
    Boyer–Moore–Horspool algorithm
    In 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+ tree
    B+ tree
    In 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 law
    Bradford's law
    Bradford'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...

  • branch
    Branch (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)
  • branch
    Branching (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 bound
    Branch and bound
    Branch and bound is a general algorithm for finding optimal solutions of various optimization problems, especially in discrete and combinatorial optimization...

  • breadth-first search
    Breadth-first search
    In 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
  • bridge
    Bridge (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 algorithm
    British Museum algorithm
    The 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 attack
    Brute force attack
    In 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-tree
    B-tree
    In 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 sort
    Bubble sort
    Bubble 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...

  • bucket
    Bucket (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 sort
    Bucket sort
    Bucket 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 system
    Buddy memory allocation
    The 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 beaver
    Busy beaver
    In 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 Systems
    Calculus of Communicating Systems
    The 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
  • capacity
    Membership 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 tree
    Cartesian tree
    In computer science, a Cartesian tree is a binary tree derived from a sequence of numbers; it can be uniquely defined from the properties that it is heap-ordered and that a symmetric traversal of the tree returns the original sequence...

  • cascade merge sort
  • caverphone
    Caverphone
    The 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 automaton
    Cellular automaton
    A 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"...

  • centroid
    Centroid
    In 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...

  • certificate
    Public key certificate
    In 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 theorem
    Chinese remainder theorem
    The 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 algorithm
    Christofides algorithm
    The 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 thesis
    Church–Turing thesis
    In 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...

  • circuit
    Digital circuit
    Digital 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 complexity
    Circuit complexity
    In theoretical computer science, circuit complexity is a branch of computational complexity theory in which Boolean functions are classified according to the size or depth of Boolean circuits that compute them....

  • circuit value problem
  • circular list
  • circular queue
  • clique
    Clique (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 problem
    Clique problem
    In 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 table
    Hash table
    In 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 hashing
    Coalesced hashing
    Coalesced hashing, also called coalesced chaining, is a strategy of collision resolution in a hash table that forms a hybrid of separate chaining 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
  • collision
    Hash collision
    Not 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
  • combination
    Combination
    In 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 sort
    Comb sort
    Comb 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 Processes
    Communicating sequential processes
    In 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 sort
    Comparison sort
    A 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 analysis
    Competitive 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 graph
    Complete graph
    In the mathematical field of graph theory, a complete graph is a simple undirected graph in which every pair of distinct vertices is connected by a unique edge.-Properties:...

  • completely connected graph
  • complete tree
  • complexity
    Complexity
    In 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 class
    Complexity class
    In 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 function
    Concave function
    In 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
  • configuration
    Computer configuration
    In 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
  • conjunction
    Logical conjunction
    In 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 components
    Connected 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 function
    Constant function
    In 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 problem
    Continuous knapsack problem
    The 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 theorem
    Cook's theorem
    In computational complexity theory, the Cook–Levin theorem, also known as Cook's theorem, states that the Boolean satisfiability problem is NP-complete...

  • counting sort
    Counting sort
    In 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
  • CSP
    Communicating sequential processes
    In 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)
  • CSP
    Constraint satisfaction problem
    Constraint 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)
  • CTL
    Computational tree logic
    Computation 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 hashing
    Cuckoo hashing
    Cuckoo 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 problem
    Cutting stock problem
    The 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
  • cycle
    Cycle (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 sort
    Cycle sort
    Cycle sort is an in-place, unstable sorting algorithm, a comparison sort that is theoretically optimal in terms of the total number of writes to the original array, unlike any other in-place sorting algorithm...

  • cyclic redundancy check
    Cyclic redundancy check
    A 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 structure
    Data structure
    In 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...

  • decidable
    Decidability (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
  • decimation
    Decimation (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 problem
    Decision problem
    In 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 tree
    Decision tree
    A 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
  • degree
    Degree (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 graph
    Dense graph
    In 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
  • depth
    Depth-limited search
    In 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 search
    Depth-first search
    Depth-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)
  • deque
    Deque
    In 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...

  • derangement
    Derangement
    In 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 structure
    Tree structure
    A 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...

    )
  • deterministic
    Deterministic algorithm
    In 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 algorithm
    Deterministic algorithm
    In 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 machine
    Deterministic finite state machine
    In 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 automaton
    Deterministic pushdown automaton
    In 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
  • diameter
    Diameter
    In 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 search
    Dichotomic search
    In 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...

  • dictionary
    Dictionary
    A 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
  • digraph
    Directed graph
    A directed graph or digraph is a pair G= of:* a set V, whose elements are called vertices or nodes,...

  • Dijkstra's algorithm
    Dijkstra's algorithm
    Dijkstra'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 graph
    Directed acyclic graph
    In 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 graph
    Directed acyclic word graph
    In 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 graph
    Directed graph
    A 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 algorithm
    Divide and conquer algorithm
    In 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 domain
    Data domain
    In 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 care
    Don'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 queue
    Double-ended priority queue
    A 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 hashing
    Double hashing
    Double 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 curve
    Dragon curve
    A dragon curve is any member of a family of self-similar fractal curves, which can be approximated by recursive methods such as Lindenmayer systems.-Heighway dragon:...

  • dual graph
    Dual graph
    In 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 array
    Dynamic array
    In 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 programming
    Dynamic programming
    In 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 coloring
    Edge coloring
    In graph theory, an edge coloring of a graph is an assignment of “colors” to the edges of the graph so that no two 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 distance
    Edit distance
    In 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 algorithm
    Euclidean algorithm
    In 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 distance
    Euclidean distance
    In 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 path
    Eulerian path
    In 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 graph
    Expander graph
    In 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 algorithm
    Extended Euclidean algorithm
    The 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 hashing
    Extendible hashing
    Extendible hashing is a type of hash system which treats a hash as a bit string, and uses a trie for bucket lookup. Because of the hierarchical nature of the system, re-hashing is an incremental operation...

  • external index
  • external memory algorithm
  • external memory data structure
  • external merge
  • external merge sort
  • external node
  • external quicksort
  • external radix sort
  • external sort
  • extrapolation search
  • extremal
  • extreme point
    Extreme point
    In 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 location
    Facility location
    Facility 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 substring
    Substring
    A 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...

    )
  • factorial
    Factorial
    In 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 transform
    Fast Fourier transform
    A 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 set
    Feedback vertex set
    In 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 number
    Fibonacci number
    In 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 heap
    Fibonacci heap
    In 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
  • Find
    Find
    In 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 transform
    Discrete Fourier transform
    In 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 machine
    Finite state machine
    A 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 transducer
    Finite state transducer
    A 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 served
    First Come, First Served
    First 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
  • flow
    Flow (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 network
    Flow network
    In 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
  • forest
    Forest
    A 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 language
    Formal language
    A 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 methods
    Formal methods
    In 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 verification
    Formal verification
    In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal methods of mathematics .- Usage :Formal verification can be...

  • forward index
  • fractal
    Fractal
    A 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 list
    Free list
    A 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 function
    Gamma function
    In 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 optimum
    Global optimum
    In 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 sort
    Gnome sort
    Gnome 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...

  • goobi
    Goobi
    Goobi 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...

  • graph
    Graph (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 coloring
    Graph coloring
    In graph theory, graph coloring is a special case of graph labeling; it is an assignment of labels traditionally called "colors" to elements of a graph subject to certain constraints. In its simplest form, it is a way of coloring the vertices of a graph such that no two adjacent vertices share the...

  • graph concentration
  • graph drawing
    Graph drawing
    Graph drawing is an area of mathematics and computer science combining methods from geometric graph theory and information visualization to derive two-dimensional depictions of graphs arising from applications such as social network analysis, cartography, and bioinformatics...

  • graph isomorphism
    Graph isomorphism
    In graph theory, an isomorphism of graphs G and H is a bijection between the vertex sets of G and H f \colon V \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 partition
    Graph partition
    In 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 code
    Gray code
    The 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 divisor
    Greatest common divisor
    In 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 algorithm
    Greedy algorithm
    A 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 file
    Grid file
    In computer science, a grid file or bucket grid is a point access method which splits a space into a non-periodic grid where one or more cells of the grid refer to a small set of points...

  • Grover's algorithm
    Grover's algorithm
    Grover'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 problem
    Halting problem
    In 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 path
    Hamiltonian path
    In 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 distance
    Hamming distance
    In information theory, the Hamming distance between two strings of equal length is the number of positions at which the corresponding symbols are different...

  • Harter–Highway dragon
    Dragon curve
    A dragon curve is any member of a family of self-similar fractal curves, which can be approximated by recursive methods such as Lindenmayer systems.-Heighway dragon:...

  • hash function
    Hash function
    A 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 table
    Hash table
    In 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 distance
    Hausdorff distance
    In mathematics, the Hausdorff distance, or Hausdorff metric, also called Pompeiu–Hausdorff distance, measures how far two subsets of a metric space are from each other. It turns the set of non-empty compact subsets of a metric space into a metric space in its own right...

  • hB-tree
  • head
  • heap
    Heap (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
  • heapsort
    Heapsort
    Heapsort 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
  • height
    Height
    Height 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
  • heuristic
    Heuristic
    Heuristic 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 model
    Hidden Markov model
    A 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 curve
    Hilbert curve
    A 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 algorithm
    Hungarian algorithm
    The 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
  • hypergraph
    Hypergraph
    In 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 function
    Identity function
    In 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 principle
    Inclusion-exclusion principle
    In combinatorics, the inclusion–exclusion principle is an equation relating the sizes of two sets and their union...

  • inclusive or
  • incompressible string
    Incompressible string
    An 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 sort
    Insertion sort
    Insertion 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 system
    Interactive proof system
    In computational complexity theory, an interactive proof system is an abstract machine that models computation as the exchange of messages between two parties. 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 sort
    Internal sort
    An 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 search
    Interpolation search
    Interpolation 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 tree
    Interval tree
    In 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
  • introsort
    Introsort
    Introsort 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 index
    Inverted index
    In 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
  • iteration
    Iteration
    Iteration 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 algorithm
    Johnson's algorithm
    Johnson'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 sort
    J sort
    J 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....

  • JSort
    JSort
    JSort 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 algorithm
    Karmarkar's algorithm
    Karmarkar'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 map
    Karnaugh map
    The 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 tree
    K-ary tree
    In 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
  • KMP
    Internet Security Association and Key Management Protocol
    ISAKMP is a protocol defined by RFC 2408 for establishing Security Associations and cryptographic keys in an Internet environment...

  • KmpSkip Search
  • knapsack problem
    Knapsack problem
    The 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 tour
    Knight's tour
    The 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 algorithm
    Knuth–Morris–Pratt algorithm
    The 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 complexity
    Kolmogorov complexity
    In 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 inequality
    Kraft's inequality
    In 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 structure
    Kripke structure
    A 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 algorithm
    Kruskal's algorithm
    Kruskal'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
  • language
    Language
    Language 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 algorithm
    Las Vegas algorithm
    In 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
  • leaf
    Leaf
    A 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 multiple
    Least common multiple
    In 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 tree
    Leftist tree
    A 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 rotation
    Left rotation
    Left 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 distance
    Levenshtein distance
    In information theory and computer science, the Levenshtein distance is a string metric for measuring the amount of difference between two sequences...

  • lexicographical order
    Lexicographical order
    In 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...

  • linear
    Linear
    In mathematics, a linear map or function f is a function which satisfies the following two properties:* Additivity : f = f + f...

  • linear congruential generator
    Linear congruential generator
    A 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 hash
    Linear hash
    Linear 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 probing
    Linear probing
    Linear 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 search
    Linear search
    In 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....

  • link
    Reference (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 list
    Linked list
    In 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 optimum
    Local optimum
    Local 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...

  • logarithm
    Logarithm
    The 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 scale
    Logarithmic scale
    A 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 ancestor
    Lowest common ancestor
    The 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-reduction
    L-reduction
    In 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 reduction
    Many-one reduction
    In 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 chain
    Markov chain
    A 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 problem
    Assignment problem
    The assignment problem is one of the fundamental combinatorial optimization problems in the branch of optimization or operations research in mathematics...

    )
  • Master theorem
    Master theorem
    In 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 set
    Maximal independent set
    In 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 machine
    Mealy machine
    In the theory of computation, a Mealy machine is a finite-state machine whose output values are determined both by its current state and the current inputs. The outputs change asynchronously with respect to the clock, meaning that the outputs change at unpredictable times, making timing analysis...

  • mean
    Mean
    In statistics, mean has two related meanings:* the arithmetic mean .* the expected value of a random variable, which is also called the population mean....

  • median
    Median
    In 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)
  • memoization
    Memoization
    In 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 algorithm
    Merge algorithm
    Merge 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 sort
    Merge sort
    Merge 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 function
    Meromorphic function
    In 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...

  • metaheuristic
    Metaheuristic
    In 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...

  • metaphone
    Metaphone
    Metaphone 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 box
    Minimum bounding box
    The 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 cut
    Minimum cut
    In 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 tree
    Minimum spanning tree
    Given 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
  • mode
    Mode (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 checking
    Model checking
    In 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 computation
    Model of computation
    In 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 algorithm
    Monte Carlo algorithm
    In 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 machine
    Moore machine
    In 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
  • multigraph
    Multigraph
    In 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
  • multiset
    Multiset
    In 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
  • NC
    NC (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 search
    Nearest neighbor search
    Nearest 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...

  • negation
    Negation
    In 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 network
    Flow network
    In 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
  • node
    Node (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 algorithm
    Nondeterministic algorithm
    In 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 machine
    Nondeterministic finite state machine
    In 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
  • nor
    Logical NOR
    In 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...

  • not
    Negation
    In 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
  • NP
    NP (complexity)
    In computational complexity theory, NP is one of the most fundamental complexity classes.The abbreviation NP refers to "nondeterministic polynomial time."...

  • NP-complete
    NP-complete
    In 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-hard
    NP-hard
    NP-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
  • NYSIIS
    New York State Identification and Intelligence System
    The New York State Identification and Intelligence System Phonetic Code, commonly known as NYSIIS, is a phonetic algorithm devised in 1970 as part of the New York State Identification and Intelligence System...


O

  • objective function
  • occurrence
  • octree
    Octree
    An 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)
  • omega
    Omega
    Omega 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"...

  • omicron
    Omicron
    Omicron 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 algorithm
    Online algorithm
    In computer science, an online algorithm is one that can process its input piece-by-piece in a serial fashion, i.e., in the order that the input is fed to the algorithm, without having the entire input available from the start. In contrast, an offline algorithm is given the whole problem data from...

  • open addressing
    Open addressing
    Open 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...

  • optimal
    Optimization (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 problem
    Optimization (mathematics)
    In mathematics, computational science, or management science, mathematical optimization refers to the selection of a best element from some set of available alternatives....

  • or
    Logical disjunction
    In 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 approximation
    Orders of approximation
    In 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 packing
    Set packing
    Set 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 argument
    Padding argument
    In 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...

  • pagoda
    Pagoda
    A 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 heap
    Pairing heap
    A 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 thesis
    Parallel computation thesis
    In 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 Machine
    Parallel Random Access Machine
    In 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
  • parent
    Parent
    A 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 function
    Partial function
    In 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 set
    Partially ordered set
    In 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 sorting
    Patience sorting
    Patience 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 cover
    Path cover
    Given 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
  • pattern
    Pattern
    A 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-complete
    P-complete
    In 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....

  • PCP
    Phencyclidine
    Phencyclidine , 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
  • permutation
    Permutation
    In 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 structure
    Persistent data structure
    In 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 graph
    Planar graph
    In 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 graph
    Planar straight-line graph
    Planar 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 machine
    Pointer machine
    In theoretical computer science a pointer machine is an "atomistic" abstract computational machine model akin to the Random access machine....

  • poissonization
  • polychotomy
    Polychotomy
    Polychotomy 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:*****...

  • polyhedron
    Polyhedron
    In elementary geometry a polyhedron is a geometric solid in three dimensions with flat faces and straight edges...

  • polylogarithmic
    Polylogarithmic
    A 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...

  • polynomial
    Polynomial
    In 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 scheme
    Polynomial-time approximation scheme
    In computer science, a polynomial-time approximation scheme is a type of approximation algorithm for optimization problems ....

     (PTAS)
  • polynomial hierarchy
    Polynomial hierarchy
    In 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 thesis
    Church–Turing thesis
    In 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 reduction
    Polynomial-time reduction
    In 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 sort
    Polyphase merge sort
    A 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 :...

  • polytope
    Polytope
    In 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 method
    Potential method
    In 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 code
    Prefix code
    A 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 sum
    Prefix sum
    In 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 clustering
    Primary clustering
    Primary clustering is the tendency for certain open-addressing hash tables collision resolution schemes to create long sequences of filled slots...

  • primitive recursive
  • Prim's algorithm
    Prim's algorithm
    In 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 queue
    Priority queue
    A 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 dilemma
    Prisoner's dilemma
    The 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 machine
    Probabilistic Turing machine
    In 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 list
    Property list
    In 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 search
    Prune and search
    Prune 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 automaton
    Pushdown automaton
    In 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 probing
    Quadratic probing
    Quadratic 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....

  • quadtree
    Quadtree
    A 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 sort
    Radix sort
    In 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 machine
    Random access machine
    In 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...

  • randomization
    Randomization
    Randomization is the process of making something random; this means:* Generating a random permutation of a sequence .* Selecting a random sample of a population ....

  • randomized algorithm
    Randomized algorithm
    A 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 rounding
    Randomized rounding
    Within 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 tree
    Rectilinear Steiner tree
    The 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 relation
    Recurrence relation
    In 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....

  • recursion
    Recursion
    Recursion 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 termination
    Recursion termination
    In 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 language
    Recursive language
    In 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 language
    Recursively enumerable language
    In 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 tree
    Red-black tree
    A 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)
  • reduction
    Reduction (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 relation
    Reflexive relation
    In 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
  • relaxation
    Relaxation 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
  • RNG
    Rng
    Rng 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...

  • root
    Root
    In 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
  • rotation
    Rotation
    A 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
  • RP
    RP (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+-tree
    R+ tree
    An 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-tree
    R-tree
    R-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 time
    Run time
    Run 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
  • scan
    Prefix sum
    In 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 tree
    Scapegoat tree
    In 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 algorithm
    Search algorithm
    In 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 tree
    Search tree
    In 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 segment
    Memory segment
    x86 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 sort
    Selection sort
    Selection 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 list
    Self-organizing list
    A 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 programming
    Semidefinite programming
    Semidefinite 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 packing
    Set packing
    Set 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 coding
    Shannon–Fano coding
    In 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 memory
    Shared memory
    In 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 sort
    Shell sort
    Shellsort, 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 algorithm
    Shor's algorithm
    Shor's algorithm, named after mathematician Peter Shor, is a quantum algorithm for integer factorization formulated in 1994...

  • shortcutting
  • shortest common supersequence
    Shortest common supersequence
    This 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
  • shuffle
    Shuffle
    Shuffling 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
  • sibling
    Sibling
    Siblings 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 curve
    Sierpinski curve
    Sierpiń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 triangle
    Sierpinski triangle
    The 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 Eratosthenes
    Sieve of Eratosthenes
    In 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
  • signature
    Signature
    A 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 algorithm
    Simon's algorithm
    Simon'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 path
    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...

  • simple uniform hashing
  • simplex communication
    Simplex communication
    Simplex 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 annealing
    Simulated annealing
    Simulated 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
  • sink
    Sink
    A 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 list
    Skip list
    A 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
  • smoothsort
    Smoothsort
    Smoothsort 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 array
    Sorted array
    A 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
  • soundex
    Soundex
    Soundex 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 tree
    Spanning 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 matrix
    Sparse matrix
    In 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 tree
    Splay tree
    A 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...

  • SPMD
    SPMD
    In 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 root
    Square root
    In 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)
  • stable
    Numerical stability
    In 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 tree
    Stack tree
    A 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 polygon
    Star-shaped polygon
    A 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
  • state
    State (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 tree
    Steiner tree
    The 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 approximation
    Stirling's approximation
    In 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 sort
    Stooge sort
    Stooge 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 sort
    Strand sort
    Strand 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
  • string
    String (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 component
    Strongly connected component
    A 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
  • subsequence
    Subsequence
    In 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...

  • subset
    Subset
    In 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...

  • substring
    Substring
    A 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 array
    Suffix array
    In 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 tree
    Suffix tree
    In 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 code
    Superimposed code
    A 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:...

  • superset
    SuperSet
    SuperSet 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 relation
    Symmetric relation
    In 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 breaking
    Symmetry breaking
    Symmetry 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

  • tail
    Tail
    The 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 logic
    Temporal logic
    In 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 tree
    Steiner tree
    The 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 search
    Ternary search
    A ternary search algorithm is a technique in computer science for finding the minimum or maximum of a unimodal function...

  • ternary search tree
    Ternary search tree
    In 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
  • theta
    Theta
    Theta is the eighth letter of the Greek alphabet, derived from the Phoenician letter Teth...

  • threaded binary tree
    Threaded binary tree
    A 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-dimensional
    Three-dimensional space
    Three-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 order
    Topological order
    In 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 order
    Total order
    In 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
  • tournament
    Tournament (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
  • transducer
    Transducer
    A 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 machine
    Turing machine
    A 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 relation
    Transitive relation
    In 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 closure
    Transitive closure
    In 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 reduction
    Transitive reduction
    In 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 problem
    Travelling salesman problem
    The 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)
  • treap
    Treap
    In 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 automaton
    Tree automaton
    A tree automaton is a type of state machine. Tree automata deal with tree structures, rather than the strings of more conventional state machines.The following article deals with branching tree automata, which correspond to regular languages of trees...

  • tree contraction
  • tree editing problem
  • tree sort
    Tree sort
    A 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 traversal
    Tree traversal
    In 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 inequality
    Triangle inequality
    In 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
  • trie
    Trie
    In 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 machine
    Turing machine
    A 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 reduction
    Turing reduction
    In 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 tree
    2-3-4 tree
    In computer science, a 2-3-4 tree is a self-balancing data structure that is commonly used to implement dictionaries...

  • 2-3 tree
    2-3 tree
    In 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 function
    Unary function
    A 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 problem
    Undecidable problem
    In 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
  • union
    Union (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 hashing
    Universal hashing
    Using 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 machine
    Universal Turing machine
    In 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...

  • universe
    Universe
    The 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 sort
    UnShuffle 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 queue
    Van Emde Boas tree
    A 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 problem
    Vehicle routing problem
    The 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 diagram
    Venn diagram
    Venn 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...

  • vertex
    Vertex (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 cover
    Vertex cover
    In 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 algorithm
    Viterbi algorithm
    The 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-tree
    Vp-tree
    A 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 problem
    Vehicle routing problem
    The 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 tree
    Weight-balanced tree
    A 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
  • window
    Window
    A 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...

  • witness
    Witness
    A 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 case
    Worst Case
    Worst 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 congruence
    Zeller's congruence
    Zeller'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
  • zipper
    Zipper
    A zipper is a commonly used device for temporarily joining two edges of fabric...

  • ZPP
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK