The updated new edition of the classic Introduction to Algorithms is intended primarily for use in undergraduate or graduate courses in algorithms or data structures. Like the first edition, this text can also be used for self-study by technical professionals since it discusses engineering issues in algorithm design as well as the mathematical aspects.In its new edition, Introduction to Algorithms continues to provide a comprehensive introduction to the modern study of algorithms. The revision has been updated to reflect changes in the years since the book's original publication. New chapters on the role of algorithms in computing and on probabilistic analysis and randomized algorithms have been included. Sections throughout the book have been rewritten for increased clarity, and material has been added wherever a fuller explanation has seemed useful or new information warrants expanded coverage. As in the classic first edition, this new edition of Introduction to Algorithms presents a rich variety of algorithms and covers them in considerable depth while making their design and analysis accessible to all levels of readers. Further, the algorithms are presented in pseudocode to make the book easily accessible to students from all programming language backgrounds. Each chapter presents an algorithm, a design technique, an application area, or a related topic. The chapters are not dependent on one another, so the instructor can organize his or her use of the book in the way that best suits the course's needs. Additionally, the new edition offers a 25% increase over the first edition in the number of problems, giving the book 155 problems and over 900 exercises that reinforce the concepts the students are learning.