Index / 001 EN

Computer Science

Computer Science

Algorithms

Jeff Erickson

A complete algorithms textbook emphasizing recursive structure, proof, dynamic programming, graph problems and reductions after data structures.

Prerequisites: Discrete mathematics, mathematical induction, recursion and basic data structures are prerequisites. Review graphs, asymptotic notation and recurrence relations; this book does not teach queues, hash tables or balanced trees from scratch.

Difficulty Level
Intermediate
Academic Level
Undergraduate
algorithm designgraph algorithmsNP hardness

01 / Reading Guide

Reading Guide

Who this book is for

For undergraduates in an algorithms course after introductory programming and data structures. The author explicitly distinguishes the book from a first exposure to algorithms. Its main benefit is sustained practice in designing an algorithm, stating why it works and separating the reasoning about correctness from the running-time analysis.

Prerequisites

Discrete mathematics, mathematical induction, recursion and basic data structures are prerequisites. Review graphs, asymptotic notation and recurrence relations; this book does not teach queues, hash tables or balanced trees from scratch.

What it covers

Recursion and backtracking lead into dynamic programming, greedy methods, graph traversal, spanning trees, shortest paths, flows, cuts and NP-hardness. The book places design patterns beside worked reasoning. Additional lecture notes on the author’s page are separate supplements, so their topics should not be assumed to belong to the main volume.

How to use it

Before writing code, specify the input, the desired output and a small instance that exposes a tempting wrong approach. State the recursive subproblem or greedy choice precisely. Write a correctness argument and then analyze the resources used; neither step substitutes for the other. Use exercises to compare two approaches to the same problem, and construct counterexamples when a proposed improvement fails. Implement only after the design is clear, using small exhaustive cases to check the reasoning.

Edition and sources

The author’s complete first edition is dated June 2019 and contains 472 pages. The textbook uses CC BY 4.0, while the separate lecture notes on the same page use CC BY-NC-SA 4.0. Preserve that distinction when reusing material.

Open the official resource