# Algorithms, 4th Edition

essential information that
every serious programmer
algorithms and data structures

## Online content.

This booksite contains tens of thousands of files, fully coordinated with our textbook and also useful as a stand-alone resource. It consists of the following elements:

• Excerpts. A condensed version of the text narrative, for reference while online.

• Lectures. Curated studio-produced online videos, suitable for remote instruction via CUvids.

• Java code. The algorithms and clients in this textbook, along with the standard libraries they use.

• Exercises. Selected exercises from the book and “web exercises” developed since its publication, along with solutions to selected exercises.

• Programming assignments. Creative programming assignments that we have used at Princeton.
You can explore these resources via the sidebar at left.

## Textbook.

The textbook Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne [ Amazon · Pearson · InformIT ] surveys the most important algorithms and data structures in use today. We motivate each algorithm that we address by examining its impact on applications to science, engineering, and industry. The textbook is organized into six chapters:
• 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 features 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.
Reading a book and surfing the web are two different activities: This booksite is intended for your use while online (for example, while programming and while browsing the web); the textbook is for your use when initially learning new material and when reinforcing your understanding of that material (for example, when reviewing for an exam).

## For teachers:

• To use the lecture videos. Please go to the Lectures tab at left for links to all the online videos and suggestions on how to use them.

• To adopt the textbook. You can request an examination copy or email the authors for more information. Here is the preface. ACM/IEEE cites COS 226 as a course exemplar in CS2013. Lecture slides (in Keynote format) are available by request for instructors who adopt the textbook.

## For students:

• This online content. Whether your course uses our book or not, you can reinforce your understanding of many topics related to the study of algorithms by browsing the excerpts, code, and exercises here, watching the lecture videos, and/or using our book as a reference.

• Java code. Please go to the Code tab at left for instructions on setting up a Java programming environment, installing our standard libraries, and downloading all of our code.

• Lecture videos. Please go to the Lectures tab at left for links to all the online videos and suggestions on how to use them.

• MOOCs. You can take our free Coursera MOOCs Algorithms, Part I and Algorithms, Part II.

• Certificate courses. You can earn a certificate by taking our CUbits courses Algorithms, Part I and Algorithms, Part II.