This document is an instructor's manual to accompany Introduction to Algorithms, Second Edition, by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. It is intended for use in a course on algorithms. You might also find some of the material herein to be useful for a CS 2-style course in data structures.Unlike the instructor's manual for the first edition of the text—which was organized around the undergraduate algorithms course taught by Charles Leiserson at MIT in Spring 1991—we have chosen to organize the manual for the second edition according to chapters of the text. That is, for most chapters we have provided a set of lecture notes and a set of exercise and problem solutions pertaining to the chapter. This organization allows you to decide how to best use the material in the manual in your own course.
This book emphasizes the creative aspects of algorithm design by examining steps used in the process of algorithm development. The heart of the creative process lies in an analogy between proving mathematical theorems by induction and designing combinatorial algorithms. The book contains hundreds of problems and examples. It is designed to enhance the reader's problem-solving abilities and understanding of the principles behind algorithm design. 0201120372B04062001
INTRODUCTION TO ALGORITHMS, DATA STRUCTURES AND FORMAL LANGUAGES provides a concise, straightforward, yet rigorous introduction to the key ideas, techniques, and results in three areas essential to the education of every computer scientist. The textbook is closely based on the syllabus of the course COMPSCI220, which the authors and their colleagues have taught at the University of Auckland for several years. The book could also be used for self-study. Many exercises are provided, a substantial proportion of them with detailed solutions. Numerous figures aid understanding. To benefit from the book, the reader should have had prior exposure to programming in a structured language such as Java or C++, at a level similar to a typical two semester first-year university computer science sequence. However, no knowledge of any particular such language is necessary. Mathematical prerequisites are modest. Several appendices can be used to fill minor gaps in background knowledge. After finishing this book, students should be well prepared for more advanced study of the three topics, either for their own sake or as they arise in a multitude of application areas.
In mathematics and computer science, an algorithm is a self-contained step-by-step set of operations to be performed. Algorithms perform calculations, data processing, and/or automated reasoning tasks.
Introduction : distributed systems - The model - Communication protocols - Routing algorithms - Deadlock-free packet switching - Wave and traversal algorithms - Election algorithms - Termination detection - Anonymous networks - Snapshots - Sense of direction and orientation - Synchrony in networks - Fault tolerance in distributed systems - Fault tolerance in asynchronous systems - Fault tolerance in synchronous systems - Failure detection - Stabilization.