This book is intended to survey the most important computer algorithms in use today,
and to teach fundamental techniques to the growing number of people in need of
knowing them. It is intended for use as a textbook for a second course in computer
science, after students have acquired basic programming skills and familiarity with computer
systems. The book also may be useful for self-study or as a reference for people engaged in
the development of computer systems or applications programs, since it contains implementations
of useful algorithms and detailed information on performance characteristics and
clients. The broad perspective taken makes the book an appropriate introduction to the field
1