Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Purpose: Self-Learning, NOT for course or exam

Prerequisite: Done a course in basic data structures and algorithms, but too basic, not many things.

Major: Bachelor, Mathematics

My Opinion: Prefer more compact, mathematical, rigorous book on Algorithms and Data Structures. Since it's for long-term self-learning, not for exam or course, then related factors should not be considered (e.g. learning curve, time-usage), only based on the book to perfectly train algorithms and data structures.

After searching at Amazon, following three are somehow highly reputed.

(1)Knuth, The Art of Computer Programming, Volume 1-4A

This book-set contains most important things in Algorithms, and very mathematically rigorous. I prefer to use this to learn algorithms all in one step.

(2)Cormen, Introduction to Algorithms

It's more like in-between (1) and (3).

(3)Skiena, The Algorithm Design Manual

More introductory and practical compared with (1), is it ok for this to be warm-up then read (1), and skip (2) ?

Desirable answer: Advice or more recommended books

share|cite|improve this question
up vote 2 down vote accepted

Knuth is an interesting case, it's certainly fairly rigorous, but I would never recommend it as a text to learn from. It's one of those ones that is great once you already know the answer, but fairly terrible if you want to learn something. On top of this, the content is now rather archaically presented and the pseudocode is not the most transparent.

Of course this is my experience of it (background CS & maths), but I have encountered this rough assessment a few times.

share|cite|improve this answer
is it relatively enough to use (3)->(2)->(1) as whole reading in Algorithms, (3)&(2) treated as learning text ? – Xingdong Jul 24 '12 at 11:31
I think together they'd certainly give you good coverage, Cormen et al. alone covers a big chunk of the "basic background knowledge" that will make you pretty conversant in algorithmics. – Luke Mathieson Jul 24 '12 at 12:22
Robert Sedgewick 'Algorithms' (in X) is pretty much the childrens version of the 'Art of programming' series. The PhD of Sedgewick was supervised by Knuth so i'm sure that was the intention of writing that book. There are loads of versions where the examples are either in Java, C, C++ and so on. The one i had was 'Algorithms in Pascal' that is what got me started on algorithms and CS really. So start with that book and then 'graduate' to 'the art of programming'. Another book i recommend is 'Understanding and Using Linear Programming' by Gaertner and Matousek. – Peter Sheldrick Jul 24 '12 at 13:05

I would suggest you take 2 (Cormen et. al - Introduction to algortihms) and combine it with the online video lectures for this book.

The book is very formal and offers a variety of exercises.

share|cite|improve this answer

Some years ago the journal "Dr Dobb's" issued a CD called "Dr Dobb's Essential Books on Algorithms and Data Structures". There were 8 complete books on it with a search engine. The Cormen book is one of those on the CD. I am not sure whether the CD is still available.

share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.