List of Algorithms
List of Algorithms
Index
A
Index
B
Index
C
C++, 4, 6, 51
Calls(s,t), 430
Candidate solution, 98
Ceiling, 511
Central processing unit (CPU), 486
Chachian, L.G., 401
Chained Matrix Multiplication problem, 107-113, 377
Change of variables technique, for solving recurrences, 568-571
Change problem, greedy algorithm for, 138-141
Characteristic equation
definition of, 556
for homogenous linear recurrence, 556-562
solving recurrences using, 553-562
checknode, 191, 195, 207, 218
Chromatic number, 384
Ciphertext, 477
Clause, 391
Clemen, R.T., 344
Clique
definition of, 385
maximal, 385
Clique Decision problem, 385, 395-396
Clique Optimization problem, 385
Clique problem, 385
Closed binary operation, 434
CNF-Satisfaction problem, 391-392
CNF-Satisfiability, as NP-complete, 395-396
CNF-Satisfiability Decision problem, 391-392
coalesce, 311
Codeword, 169
Collision (hash clash), 341
Combinations, 530, 533
Common divisor, 421
Common logarithms, 522
Index
D
Index
E
e, 524
Edge (arc), 97
Elementary event, 531
Elements, of sets, 527
Empty set, 528
Encryption, 477
Enqueue, 235
EPL (external path length), 303
Equivalence class modulo n containing m, 438
ERCW (exclusive-read, concurrent-write), 495
EREW (exclusive-read, exclusive-write), 495
Essentially complete binary tree, 285
Euclid's Algorithm, 428-430
extension to, 432-434
worst-case time complexity, 430-431
Euclid's Algorithm 2, 432-434
Euler's totient function, 441-442
Event, 531
Every-case time complexity analysis, 19, 25
Floyd's algorithm for shortest paths, 103
Minimum Multiplications, 113-114
Optimal Binary Search Tree, 123
Partition, 63
Prim's Algorithm, 148-150
Strassen, 70-71
Exchange Sort, 277, 380
algorithm, 7-8
analysis summary, 273
decision tree, 298-300
every-case time complexity, 19-20
as in-place sort, 273
input size, 17
as selection sort, 275
in threshold determination, 79-80
time complexity, 33
Exclusive-read
concurrent-write (ERCW), 495
exclusive-write (EREW), 495
Expected value, 367, 541
External path length (EPL), 303
External search, 338
Index
F
Factorial, 549-550
Feasibility check, for greedy algorithm, 138, 140
Feasible sequence, 163
Feasible set, 163
Fermat, 447-448
Fibonacci Sequence, 12
kth number in, 429
nth, 558-559
Finding largest key, in array, 498-501
Finding Largest Key, 345-346
Find Smallest and Largest Key, 346-347
Find Smallest and Largest Keys by Pairing Keys, 347-348
Fine, T.L., 536
Finite, 436
First-fit strategy, 411-412
Fischer, M.J., 383
Fixed-length binary code, 169
Floor, 511
Floyd, R.W., 102, 366
Floyd's Algorithm
for Shortest Paths, 102-103
for Shortest Paths 2, 103-104
Fractional Knapsack problem, greedy approach to, 175-177
Fredman, M.L., 115, 159
Functions, 6, 513-514. See also Complexity function
complete quadratic, 25-26
domain of, 514
Euler's totient, 441-442
Hash, 339
probability, 531
promising, 192
quadratic, 25-26
range of, 514
Fundamental theorem of arithmetic, 425
Fussenegger, F., 366
Index
G
Index
Index
I
as data type, 6
of processor, 496
Induction
using to solve recurrences, 549-553
vs. substitution, 571
Induction base, 515-520, 552
Induction hypothesis, 515-520, 552
Induction step, 515-520, 552
Infinity, 513
Initial condition, 550
In-order traversal, 334
In-place sort, 57, 270
Inputs, 5
Input size, 17-18. See also under specific algorithms
definition of, 378
intractability and, 378-382
Insertion Sort, 270-271, 275, 277
analysis of extra space usage, 272-273
analysis summary, 273
average-case time complexity analysis, 271-272
exercises, 312-313
vs. Selection Sort, 274
worst-case time complexity analysis, 271
Instance of problem, 3
Integers, 420
Interconnection networks, 491-494
Internal node, 285
Internal search, 338
Interpolation Search, 320, 330-333
algorithm, 331
robust, 332-333
Intersection, 527
Intractability, 376-378
categories, 378
input size and, 378-382
problems, 382-384
Inversion, 276
Isomorphic, 399
Iverson, G.R., 539
Index
J
Index
K
Index
L
Lagrange, 443
Lambalgen, M. van, 540
Landis, E.M., 338
Langston, M.A., 283
Large-integer, 72
Large Integer Multiplication, 74-76
Large Integer Multiplication 2, 76-78
Leaf, 190
Least common multiple, 427
Left subtree, 116
Lemmas, 522
Length, path, 97
Linear recurrences
homogeneous, 553-562
nonhomogeneous, 562-567
Linear-time algorithms, 25
LISP, 51
List, definition of, 2-3
Literal, 391
In x, 524
Logarithms
common, 522
definition of, 522-523
natural, 524-526
properties of, 523-524
Logical (Boolean) variable, 391
Longcor, W.H., 539
Loser, 345
Lower bounds
for algorithms that remove most one inversion per comparison, 275-277
for average-case behavior, 303-308
definition of, 268
exercises, 313, 316
for searching only by comparison keys, 320-330
for average-case behavior, 324-330
for worst-case behavior, 322-324
for sorting only by comparison keys, 297-300
for worst-case behavior, 300-302
Index
M
Magnitude, 381
makecheap, 292-294
Marbe, K., 539
masterlist, 311
Matching, 409
Mathematical induction, 514-520
Mathematics, review of, 511-542
exercises, 542-547
functions, 513-514
lemmas, 522
logarithms, 522-526
mathematical induction, 514-520
notation, 511-513
Mathematics, review of (continued)
permutations, 528-529
probability, 531-542
sets, 526-528
theorems, 521-522
Matrix Multiplication, 8-9, 67, 268
every-case time complexity, 20
input size, 17
McCreight, E.M., 338
m-Coloring problem, 209
Median
definition of, 361-362
Selection Using the Median, 362-364
Members, of sets, 527
Memory complexity, 23
Merge, 55
in-place sort, 57
worst-case time complexity, 55-56
Merge 2, 58-59
Mergesort, 53-59
average-case time complexity, 278
compared with Heapsort and Quicksort, 296-297
every-case time complexity, 278
exercises, 313-314, 316
improvements of, 279
removal of more than one inversion after comparison, 277-278
worst-case time complexity, 56-57, 79, 278
Mergesort 2, 58
extra space usage analysis, 279
optimal threshold, 80-81
Mergesort 3, 279-281, 503
Mergesort 4 (Linked Version), 281-283
Message-passing architecture, 480, 492
Miller-Rabin Randomized Primality Test, 480
MIMD (multiple instruction stream, multiple data stream), 495
minapprox, 409, 410-411
mindlist, 409, 410-411
minEPL(m), 303-307
Minimal weight matching, 409-410
Minimum Multiplications, 113
every-case time complexity, 113-114
optimal order, 114-115
Index
N
Index
O
Index
P
Index
Q
Quadratic functions
complete, 25-26
pure, 25-26
Quadratic-time algorithm (Θ(n2) algorithm), 26-31
Quadratic-time sorting algorithm, 25. See also Exchange Sort
Quicksort, 61, 283-284
average-case analysis, 337
average-case time complexity, 65-66, 284
compared with Heapsort and Mergesort, 296-297
exercises, 313-315, 316
extra space usage, 284-285
improved, 284-285
recursive calls, 284-285
worst-case time complexity analysis, 63-65, 285, 359
Quicksort (partition exchange sort), 60-66
Quotient, 421
Index
R
Index
S
Sequence, 188
Sequential Search, 4-5, 19, 321
average-case time complexity, 21-22
basic operation, 18
input size, 17
vs. binary search, 9-11
worst-case time complexity, 20-21
Serial computer, traditional, 486
Sets, 526-528
Shared-address-space architecture, 490
Sherwood Algorithm, 366-370
Shing, M.R., 116
Siblings, 174
Siftdown, 287-289, 292, 293
Sigma, 512-513
Simple path, 97
Single instruction stream
multiple data stream, 488-489
single data stream (SISD), 486
Single-source shortest paths, Dijkstra's Algorithm. See Dijkstra's Algorithm
SISD (single instruction stream, single data stream), 486
Skewed tree, 335
Small o, 34
Smooth, 575-576
Solution, problem, 4, 550
Solution check, for greedy algorithm, 138, 140
Solution to instance, 3
Solve Modular Linear Equation, 453
Sorting, by distribution, 308-312
Sorting algorithms, 7-8
decision trees for, 297-300
Exchange Sort. See Exchange Sort
Heapsort. See Heapsort
Insertion sort. See Insertion Sort
Mergesort. See Mergesort
Mergesort 2. See Mergesort 2
Mergesort 4 (Linked Version), 281-283
Parallel Mergesort, 503-505
Quicksort. See Quicksort
Sorting task, 269
Sort only by comparisons of keys, 269
Spanning tree, 143
Star-connected network, 492
State space tree, 234
definition of, 190
purning, using best-first search, 256-262
Static interconnection network, 491
Static searching, 333
Stearns, R.E., 383
Step, 380
Storage, 2
Index
T
2-tree, 303
3-2 tree, 338
Tail-recursion, 51
Tarjan, R.E., 115, 156, 159, 366
Theorems
definition of, 521-522
proof of, 579-582
Theory of algorithm analysis, application of, 24
Thresholds, determining, 78-83
Time, 2
Time complexity analysis, 18-20. See specific time complexity analyses
Time in the system, 159
Top-down approach, 48
Totweight, 218-225
Tour, 126, 384
Tournament method, 354-358
Transformation, 392-393
Transitivity, 438
Transposition, of permutation, 276
Traveling Salesperson problem, 375-376
branch-and-bound pruning, 246-255, 411
Complementary Decision problem, 401
Decision problem, 384, 397-398
description of, 125-129
Dynamic Programming, 129-132
Extension Decision problem, 404-405
NP theory and, 384
Index
U
Index
V
Index
W-X
Index
Y
Index
Z
Zuffelatto, D., 78