McGraw-Hill OnlineMcGraw-Hill Higher EducationLearning Center
Student Center | Instructor's Center | Introduction to Algorithms | Home
Glossary A-B
Glossary B-D
Glossary D-F
Glossary F-J
Glossary J-M
Glossary M-O
Glossary O-P
Glossary P-S
Glossary S-T
Glossary T-Z
Feedback
Help Center


small text cover image
Introduction to Algorithms, 2/e
Thomas H. Cormen, Dartmouth College
Charles E. Leiserson, Massachusetts Institute of Technology
Ronald L. Rivest, Massachusetts Institute of Technology
Clifford Stein, Columbia University


Glossary S-T


scaling  A scaling algorithm solves a problem by initially considering only the highest order bit of each relevant input value (such as an edge weight). It then refines the initial solution by looking at the two highest-order bits. It progressively looks at more and more high-order bits, refining the solution each time, until all bits have been considered and the correct solution has been computed.
(See page 616)
schedule  Given a finite set S of unit-time tasks, a schedule for S is a permutation of S specifying the order in which these tasks are to be performed.
(See page 399)
secondary clustering  a milder form of clustering in which different keys that hash to the same value follow the same rehash path
(See page 240)
secondary storage  computer memory based on magnetic disks. The amount of such secondary storage often exceeds the amount of primary memory by at least two orders of magnitude.
(See page 435)
second-best minimum spanning tree  Let Τ be the set of all spanning trees of G, and let T' be a minimum spanning tree of G. Then, the second-best minimum spanning tree is a spanning tree T such that w(T) = minT'' ∈ Τ - {T'}{w(T'')}.
(See page 575)
selection point  can be specified formally as follows:

Input: A set A of n (distinct) numbers and a number i, with 1 ≤ in.

Output: The element of xA that is larger than exactly i - 1 other elements of A.


(See page 183)
selector vertices  The only other vertices in V′ other than those of widgets are selector vertices  s1, s2, . . . , sk. We use edges incident on selector vertices in G′ to select the k vertices of the cover in G.
(See page 1009)
sentinel  a dummy object that allows us to simplify boundary conditions. For example, suppose that we provide with list L an object nil[L] that represents NIL but has all the fields of the other list elements. Whenever we have a reference to NIL in list code, we replace it by a reference to the sentinel nil[L].
(See page 206)
short circuiting  describes a property of the boolean operators "and" and "or". When we evaluate the expression "x and y" we first evaluate x. If x evaluates to FALSE, then the entire expression cannot evaluate to TRUE, and so we do not evaluate y. If, on the other hand, x evaluates to TRUE, we must evaluate y to determine the value of the entire expression. Similarly, in the expression "x or y" we evaluate the expression y only if x evaluates to FALSE.
(See page 20)
shortest path  A shortest path from vertex u to vertex v is defined as any path p with weight w(p) = δ(u, v).
(See page 580)
shortest-paths tree  rooted at s, it is a directed subgraph G' = (V', E'), where V'V and
E'E, such that

  1. V' is the set of vertices reachable from s in G,
  2. G' forms a rooted tree with root s, and
  3. for all vV', the unique simple path from s to v to G' is a shortest path from s to v in G.


(See page 584)
simple uniform hashing  the assumption that any given element is equally likely to hash to any of the m slots, independently of where any other element has hashed to.
(See page 226)
simplex  If we have three variables, then each constraint is described by a half-space in three-dimensional space. The feasible region formed by the intersection of these half-spaces is called a simplex.
(See page 775)
simplex algorithm  takes as input a linear program and returns an optimal solution.
(See page 775)
single-source shortest-paths problem  given a graph G = (V, E), we want to find a shortest path from a given source vertex sV to each vertex vV.
(See page 581)
singly linked list  If a list is singly linked, we omit the prev pointer in each element.
(See page 204)
singular value decomposition  SVD - an m x n matrix A is factored into A = Q1ΕQ2T, where Ε is an
m x n matrix with nonzero values only on the diagonla, Q1 is m x m with mutually orthonormal columns, and Q2 is n x n, also with mutually orthonormal columns.
(See page 769)
size  of a clique is the number of vertices it contains. The size of a vertex cover is the number of vertices in it. Size is the number of comparators a comparison network contains. Depends on the number of inputs and outputs.
(See pages 707, 1003 & 1006)
slack  A linear program in slack form is the maximization of a linear function subject to linear equalities. Slack measures the difference between the left-hand and right-hand sides of an equation.
(See pages 773 & 781)
slack variable  measures the slack, or difference, between the left-hand and right-hand sides of an equation.
(See page 781)
solution  A set of values for x1, x2, . . . , xn that satisfy all of the equations simultaneously.
(See page 742)
sorted in place  the numbers are rearranged within the array with at most a constant number of them stored outside the array at any time.
(See page 16)
sorted list  If a list is sorted, the linear order of the list corresponds to the linear order of keys stored in elements of the list; the minimum element is the head of the list, and the maximum element is the tail.
(See page 204)
sorting network  a comparison network for which the output sequence is monotonically increasing (that is, b1b2 ≤ · · · ≤ bn) for every input sequence. Not every comparison network is a sorting network.
(See page 707)
spanning tree  For a graphic matroid MG for a connected, undirected graph G, every maximal independent subset of MG must be a free tree with exactly
|V| - 1 edges that connects all the vertices of G. Such a tree is called a spanning tree of G. Since T is acyclic and connects all of the vertices, it must form a tree, which we call a spanning tree since it "spans" the graph G.
(See pages 394, 561)
spanning tree verification  given a graph G = (V, E) and a tree TE, determine whether T is a minimum spanning tree of G.
(See page 579)
splay trees  a form of binary search tree on which the standard search-tree operations run in O(lg n) amortized time. One application simplifies dynamic trees.
(See page 432)
splitting 2-3-4 trees  The split operation is like an "inverse" join; given a dynamic set S and an element xS, it creates a set S' consisting of all elements in S - {x} whose keys are less than key[x] and a set S'' consisting of all elements in S - {x} whose keys are greater than key[x].
(See page 453)
square  A square matrix is a n x n matrix
(See page 726)
stack  Compilers usually execute recursive procedures by using a stack that contains pertinent information, including the parameter values, for each recursive call. The maximum amount of stack space used at any time during a computation. In a stack, the element deleted from the set is the one most recently inserted: the stack implements a last-in, first-out, or LIFO, policy.
(See pages 162, 200)
stack depth  the maximum amount of stack space used at any time during a computation
(See page 162)
standard  a conanical form in which to describe properties of and algorithms for linear programs. Informally, a linear program in standard form is the maximization of a linear function subject to linear inequalities.
(See page 773)
standard deviation  of a random variable X is the positive square root of the variance of X. The standard deviation of a random variable X is sometimes denoted σX or simply σ when the random variable X is understood from context. With this notation, the variance of X is denoted σ2.
(See page 1110)
static  once the keys are stored in the table, the set of keys never changes
(See page 245)
strictly decreasing  A function f(n) is strictly decreasing if m < n implies f(m) > f(n).
(See page 51)
strictly increasing  A function f(n) is strictly increasing if m < n implies f(m) < f(n).
(See page 51)
string-matching problem  Assume that the text is an array T[1..n] of length n and that the pattern is an array P[1..m] of length mn. Further assume that the elements of P and T are characters drawn from a finite alphabet Ε. The character arrays P and T are often called strings of characters.

Pattern P occurs with shift s in text T (or, equivalently, pattern P occurs beginning at position s + 1 in text T) if 0 ≤ sn - m and
T[s + 1..s + m] = P[1..m] (that is, if T[s + j] = P[j], for 1 ≤ jm). If P occurs with shift s in T, then we call s a valid shift; otherwise, we call s an invalid shift. The string-matching problem is the problem of finding all valid shifts with which a given pattern P occurs in a given text T.


(See page 906)
subgraph-isomorphism problem  takes two graphs G1 and G2 and asks whether G1 is isomorphic to a subgraph of G2.
(See page 1017)
subgroup  a nonempty closed subset of a finite group
(See page 866)
subgroup generated by a  The subgroup generated by a, denoted ⟨a⟩ or (⟨a⟩, ⊕), is defined by

a⟩ = {a(k) : k ≥ 1}. We say that a   generates the subgroup ⟨a⟩ or that a is a generator of ⟨a⟩.


(See page 867)
subset-sum problem  given a finite set SN and a target tN. We ask whether there is a subset S′ ⊆ S whose elements sum to t.
substitution method  A method for solving recurrences - that is, for obtaining asymptotic "Θ" or "O" bounds on the solution. In the substitution method, we guess a bound and then use mathematical induction to prove our guess correct.
(See page 62)
substring  s′ of a string s is an ordered sequence of consecutive elements of s.
(See page 1095)
symmetric difference  Given two sets A and B, the symmetric difference   AB is defined as (A - B) ∪ (B - A), that is the elements that are in exactly one of the two sets.
(See page 696)
symmetric matrix  satisfies the condition A = AT.
(See page 728)
tail  In a FIFO queue when an element is enqueued, it takes its place at the tail of the queue.
(See page 202)
tail recursion  A method used with Quicksort which avoids the second recursive call by using an iterative control structure.
(See page 162)
tautology  Let φ be a boolean formula constructed from the boolean input variables x1, x2, . . . , xk, negations (¬), AND's(^), OR's(V), and parentheses. The formula φ is a tautology if it evaluates to 1 for every assignment of 1 and 0 to the input variables.
(See page 983)
terminating case  once encountered, the loop terminates after a constant number of additional operations.
(See page 428)
Termination  When the loop terminates, the invariant gives us a useful property that helps show that the algorithm is correct.
(See page 18)
tight  property of an equality constraint for a particular setting of its nonbasic variables if they cause the constraint's basic variable to become 0.
(See page 791)
Toeplitz matrix  an n x n matrix A = (aij) such that aij = ai-1, j-1 for i = 2, 3, . . . , n and
j = 2, 3, . . . , n.
(See page 844)
total net flow  at a vertex is defined to be the total positive flow leaving a vertex minus the total positive flow entering a vertex.
(See page 645)
total path length  We define the total path length P(T) of a binary tree T as the sum, over all nodes x in T, of the depth of node x, which we denote by
d(x, T).
(See page 270)
transitive closure  The transitive closure of G is defined as the graph G* = (V, E*), where E* = {(i, j) : there is a path from vertex i to vertex j in G}.
(See page 632)
transpose  The transpose of a matrix A is the matrix AT obtained by exchanging the rows and columns of A.
(See page 726)
transposition network  A comparison network is a transposition network if each comparator connects adjacent lines.
(See page 721)
traveling-salesman problem  closely related to the hamiltonian-cycle problem. A salesman must visit n cities. Modeling the problem as a complete graph with n vertices, we can say that the salesman wishes to make a tour, or hamiltonian cycle, visiting each city exactly once and finishing at the city he starts from. There is an integer cost c(i, j) to travel from city i to city j, and the salesman wishes to make the tour whose total cost is minimum, where the total cost is the sum of the individual costs along the edges of the tour.
(See page 1012)
treap  a binary search tree with a modified way of ordering the nodes
(See page 297)
triangle inequality  For any edge (u, v) ∈ E, we have δ(s, v) ≤ δ(s, u) + w(u, v). The cost function c satisfies the triangle inequality if for all vertices u, v, wV,

c(u, w) ≤ c(u, v) + c(v, w).

The triangle inequality is a natural one, and in many applications it is automatically satisfied.


(See pages 587, 1028)
tridiagonal matrix  matrix for which tij = 0 if |i - j| > 1. Nonzero entries appear only on the main diagonal, immediately above the main diagonal
(ti,j+1 for i = 1, 2, . . . , n - 1), or immediately below the main diagonal
(ti+1,j for i = 1, 2, . . . , n - 1).
(See page 727)