views:

490

answers:

10

which book to follow to improve skills on algorithm analysis?

+7  A: 

Introduction to Algorithms is the standard college text on the subject. I've used it and can recommend it highly.

For a more pragmatic introduction (more application, less theory), I recommend Algorithms in a Nutshell.

Bill the Lizard
A: 

Introduction to Algorithms

SaaS Developer
A: 

The book uses java for it's examples but is excellent in general: Data Structures & Algorithms in Java

mbrevoort
+3  A: 

TOACP, by Knuth. Altough is very dense, if you dedicate yourself, your math skills in algorithms will be increaed.

If you want a more nice lecture, look at this one:

Algorithms, 2008. by Vazirani et all (highly recommended!, besides, full text is available online)

Alex. S.
A: 

Introduction to the Theory of Computation (by M Sipser) is also an excellent book for understanding, in more abstract terms, the theoretical limits and possibilities of different programming languages or architectures. If you like theory, I would even start with Sipser's book and consider CLRS as one step closer to just learning the most common problem/solution patterns in specific cases.

Tyler
+1  A: 

Robert Sedgewick's "Algorithms in XXXX" is good (insert language of choice for XXXX - the book is available in multiple editions). It concentrates on the implementation of the algorithms rather than deep theory.

Bob Moore
If you get Sedgewick, be sure to get an _old_ edition of his book (single books has ca. 40 chapters covering everything from balanced trees, to string searching and graphs). Newer books cover less material in more books and text; I definitely dislike them.
zvrba
+2  A: 

Since no one has mentioned it, I'll go ahead and add Programming Pearls to the list. It's not really a textbook approach to algorithms. It's actually a collection of articles the author wrote that each take small problems and show you ways to optimize their solution. It's an interesting read and teaches you to attack problems on different levels and look for optimization in often non-obvious places.

Jay
+3  A: 

Knuth: The Art of Computer Programming. Volume 1 covers fundamental analysis techniques. The algorithms are coded in assembler for hypothetical CPU and complexity is analyzed by counting instructions. His work is rather encyclopedic and requires a strong math background. You might also look at Concrete Mathematics by Knuth, Patashnik and (forgot the name) - it's not about algorithms, but it's a bit softer intro to the math used in TAOCP.

A book that is also often mentioned is M. A. Weiss: Algorithm Analysis. I have only browsed through table of contents and few pages, and it seemed decent and less mathematically heavy than Knuth.

zvrba
A: 

In addition to the other Knuth works mentioned here (TAOCP, Concrete Mathematics), don't forget his "Selected Papers on the Analysis of Algorithms".

Michael Dorfman
+1  A: 

Steve Skiena's the Algorithm Design Handbook provides a great overview general techniques along with a large selection of standard building blocks. It's much lighter on theory abut but very strong on insight and practical considerations. Highly recommended.