Introduction to Algorithms - Cormen, Leiserson and Rivest

It's really very embarassing that I got this book as a sixth-form prize, and have only just finished reading it properly. It's a truly excellent textbook, and the only texts I've read on a par with it are Hennessy and Patterson, and Alberts and Johnson. In all these cases, they're bricks of a book, but they really do demonstrate that they're bricks not because they're in-depth, but because they're actually quite shallow coverage of huge fields (and here are the references...).

In my defence, the start of this book makes a good reference on common data structures and algorithms, so I'd never really thought of it as a read-through book. It's also certainly not the first algorithms book I've read. However, it does have a couple of stand-out characteristics. The first is its emphasis on proofs of correctness and complexity. Many of these are lovely. The second is the point where it switches gear, about halfway through, and starts doing 'advanced algorithms', which is really a hodge-podge of cool stuff, which you're most likely not going to need, and if you do, you'll want to go read research papers. However, it does whet your appetite for what's out there, in a variety of directions, and makes you realise that the undergrad 'introductory algorithms' course isn't the be-all and end-all of algorithms.

Fundamentally, a classic.

Posted 2010-10-13.