09.09.2014 Views

algorithms

algorithms

algorithms

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Historical notes and further reading<br />

Chapters 1 and 2<br />

The classical book on the theory of numbers is<br />

G. H. Hardy and E. M. Wright, Introduction to the Theory of Numbers. Oxford University<br />

Press, 1980.<br />

The primality algorithm was discovered by Robert Solovay and Volker Strassen in the mid-<br />

1970’s, while the RSA cryptosystem came about a couple of years later. See<br />

D. R. Stinson, Cryptography: Theory and Practice. Chapman and Hall, 2005.<br />

for much more on cryptography. For randomized <strong>algorithms</strong>, see<br />

R. Motwani and P. Raghavan, Randomized Algorithms. Cambridge University Press,<br />

1995.<br />

Universal hash functions were proposed in 1979 by Larry Carter and Mark Wegman. The fast<br />

matrix multiplication algorithm is due to Volker Strassen (1969). Also due to Strassen, with<br />

Arnold Schönhage, is the fastest known algorithm for integer multiplication: it uses a variant<br />

of the FFT to multiply n-bit integers in O(n log n log log n) bit operations.<br />

Chapter 3<br />

Depth-first search and its many applications were articulated by John Hopcroft and Bob Tarjan<br />

in 1973—they were honored for this contribution by the Turing award, the highest distinction<br />

in Computer Science. The two-phase algorithm for finding strongly connected components<br />

is due to Rao Kosaraju.<br />

Chapters 4 and 5<br />

Dijkstra’s algorithm was discovered in 1959 by Edsger Dijkstra (1930-2002), while the first<br />

algorithm for computing minimum spanning trees can be traced back to a 1926 paper by the<br />

Czech mathematician Otakar Boruvka. The analysis of the union-find data structure (which<br />

is actually a little more tight than our log ∗ n bound) is due to Bob Tarjan. Finally, David<br />

Huffman discovered in 1952, while a graduate student, the encoding algorithm that bears his<br />

name.<br />

Chapter 7<br />

The simplex method was discovered in 1947 by George Danzig (1914-2005), and the min-max<br />

theorem for zero-sum games in 1928 by John von Neumann (who is also considered the father<br />

of the computer). A very nice book on linear programming is<br />

V. Chvátal, Linear Programming. W. H. Freeman, 1983.<br />

And for game theory, see<br />

Martin J. Osborne and Ariel Rubinstein, A course in game theory. M.I.T. Press, 1994.<br />

313

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!