Tuesday, July 11, 2017

What are the best books on algorithms and data structures?

I am looking for books to brush up my concepts algorithms and data structures and looking for self study books.
Have this question too? Request Answers:
Request From Quora
100+ Answers
Adam D'Angelo 
The most standard book is Introduction to Algorithms, by Cormen, Leiserson, Rivest, and Stein. It's used in a lot of college intro algorithms courses.
Venkateswara Rao Sanaka
This is my personal preference. There might be many other good books.

1. CLRS - The classic comprehensive text book on algorithms. A must read atleast once in programmer's career.

2. Introduction to Algorithms: A Creative Approach by Udi Manber - An excellent book on various algorithm categories. Many interesting questions on web portals as interview questions can be found in this book. Chapter end exercises are an asset. One must attempt the "Creative Problems" section at the end of every chapter. If a programmer wants to know the power of induction as problem solving approach, he must read this book. Strongly recommended.

3. The Algorithm Design Manual by Skiena - Lots of algorithmic problems, and discussions, war stories, related problems, interesting exercises. It helps in modeling a problem in different ways. A must work book for every passionate programmer. Don't read this unless you have good insight into algorithms.

4. Algorithms by Das Gupta - Precise book on few algorithmic categories, pick any chapter based on interest and attempt end of chapter exercises.

5. Algorithms 4e by Sedgewick - Relatively beginner level book, covers graphs, strings, hashing, searching, sorting, etc. very well. It follows OOP approach in Java. Strongly recommended for beginners, though nothing stops a professional. Web portal containing plenty of interesting exercises. There are other books by Sedgewick on Algorithms. Recommended for data structure learning.

6. Introduction to Design and Analysis of Algorithms by Levitin - An introductory book in algorithm design. Recommended for beginners. One can enjoy the explanation and solving end of section exercises.

On Programming Style:
1. Programming Pearls by Bentley - A must read book on design and implementation of computer programs.

2. The Practice of Programming by Kernighan - Written during Unix days, still one of the best resource on program design and implementation principles.

3. Advanced Programming in the Unix Environment by W. Richard Stevens - It covers many Unix internals and kernel level API. It follows an excellent programming style. Stevens books are one of the best in their category. I would say, they stand at the level of CLRS in algorithms category. Highly recommended.
Siddharth Goel
Well I would definitely NOT suggest Introduction to Algorithms . That is certainly an advanced book and is more sort of reference book which covers a lot of topics. My personal recommendation would be to go for MOOC rather than a book. Coursera offers some courses on Algorithms out of which two are most famous -
  1. From Princeton University by Bob Sedgewick and Kevin Wayne.
  2. From Standford University by Tim Roughgarden (Part1 and Part2)
Both are awesome courses and provides a very structured way to learn algorithms. You can have a look in those two courses. I would also encourage you to have a look at Siddhanth Deshpande's answer to Coursera: Which is better for beginners to learn the subject, the "Algorithms- Design and Analysis" course taught by Tim Roughgarden of Stanford, or the "Algorithms" course taught by  Kevin Wayne and Robert Sedgewick of Princeton? . It also covers some good points regarding those courses.

No comments:

Post a Comment