... 3. Random Numbers
Our next set of algorithms will methods for using a computer to
generate random numbers. We will find many uses ... for simulation: to provide random or arbitrary inputs to programs.
Also, we will see examples of algorithms which gain efficiency by using random
numbers to do sampling or to aid in decision making.
Linear
... the classical solution to the
network flow problem given below is closely related to the graph algorithms
that we have been examining. But this problem is one which is still actively
being studied: ... many of the problems that we’ve looked at, the “best”
solution has not yet been found and good new algorithms are still being
discovered.
433
442
Exercises
1.
Give an algorithm to solve the...
... and each woman accepts according to their lists, the same stable
configuration results.
Advanced Algorithms
The two special cases that we’ve examined give some indication of how com-
plicated the ... the
problem by considering some interesting special cases while at the same time
developing some useful algorithms.
Bipartite Graphs
The example mentioned above, matching medical students to...
... 37. Dynamic Programming
The principle of divide-and-conquer has guided the design of many of
the algorithms we’ve studied: to solve a large problem, break it up into
smaller problems which can ... applicable
(see Chapters 39 and as well as many “easy” problems for which it is
less efficient than standard algorithms. However, there is a certain class of
problems for which dynamic programmin...
... Francisco, CA, 1979.
T. C. Hu, Combinatorial Algorithms, Addison-Wesley, Reading, MA, 1982.
H. R. Lewis and C. H. Papadimitriou, “The efficiency of algorithms, ” Scientific
American, 238, 1 (1978).
C. ... Steiglitz, Combinatorial Optimization: Algorithms
and Complexity, Prentice-Hall, Englewood Cliffs, NJ, 1982.
E. M. Reingold, J. Nievergelt, and N. Deo, Combinatorial Algorithms: Theory...
... interesting algorithms that we will
encounter are based on the divide-and-conquer technique of combining the
solutions of recursively solved smaller subproblems. The running time of such
algorithms ... out that this holds true (roughly) for all N, and we have the solution
M(N)
We’ll see several algorithms from different applications areas whose perfor-
mance characteristics are describ...
... of efficiently implementing Quicksort than we have for other algorithms.
Similar implementation techniques are appropriate for other algorithms; with
Quicksort we can use them with confidence because ... explicit recursion.
This second approach is particularly appropriate for Quicksort and many
similar algorithms. We think of the stack as containing “work to be done,”
in the form of to be...
... These methods do not just
compare keys: they process and compare pieces of keys.
Radix sorting algorithms treat the keys as numbers represented in a
base-M number system, for different values ... operations needed, and so we’ll be able to write
(inefficient) Pascal programs to describe the algorithms that can be easily
translated to efficient programs in programming languages that support...