This fourth edition of Robert Sedgewick and Kevin Wayne’s Algorithms is the leading textbook on algorithms today and is widely used in colleges and universities worldwide. This book surveys the most important computer algorithms currently in use and provides a full treatment of data structures and algorithms for sorting, searching, graph processing, and string processing — including fifty algorithms every programmer should know. In this edition, new Java implementations are written in an accessible modular programming style, where all of the code is exposed to the reader and ready to use.

The algorithms in this book represent a body of knowledge developed over the last 50 years that has become indispensable, not just for professional programmers and computer science students but for any student with interests in science, mathematics, and engineering, not to mention students who use computation in the liberal arts.

**Chapter 1: Fundamentals**introduces a scientific and engineering basis for comparing algorithms and making predictions. It also includes our programming model.

**Chapter 2: Sorting** considers several classic sorting algorithms, including insertion sort, mergesort, and quicksort. It also includes a binary heap implementation of a priority queue.

**Chapter 3: Searching** describes several classic symbol table implementations, including binary search trees, red-black trees, and hash tables.

**Chapter 4: Graphs** surveys the most important graph processing problems, including depth-first search, breadth-first search, minimum spanning trees, and shortest paths.

**Chapter 5: Strings** investigates specialized algorithms for string processing, including radix sorting, substring search, tries, regular expressions, and data compression.

**Chapter 6: Context** highlights connections to systems programming, scientific computing, commercial applications, operations research, and intractability.

REVIEW