Sunday, November 21, 2010

My favorite books on Algorithms and Data Structures

21, November 2010

We usually study algorithms and data structures during academic course. However, constant improvement on algorithms and data structures skills is required for every developer. It is a day to day activity. A strong foundation on algorithms/data structures can be achieved by reading different algorithm books and solving exercises. My favorite books on Algorithms, Data Structures are given below,
My first book on learning algorithms. Very nice explanation of many algorithms and dividing chapters based on design strategy is unique feature of the book. Many of the exercises deal with programming puzzles and algorithms. Fun to read such a book, one must attempt all exercise problems. Write the algorithm on peace of paper after you read and visualize each algorithm when read.
My best reference on algorithms. A standard book used across many universities in the world. It takes atleast an year (few hours per week) to practice complete book along in-sync with the supplementary material on their website. Special for data structures. A nice book, write the algorithm or data structure on black board after you understood. One should attempt all problems.
3.           Algorithms by Dasgupta
A short and precise book on collection of algorithms. First few chapters will help in understanding the basics well. Later chapters are based on graph modeling and their algorithms. The book emphasize on graphs, dynamic programming, greedy strategy, and few more topics very well. Entire book is freely available online. For details click here. Attempt all exercise problems.
A good collection of algorithmic problems on various categories. Other book by Skiena is Programming Challenges. A must work book for all computer/computing geeks. Contains many pointers to useful resources on the CD as well as on repository site. Selectively read topics, once you have understood various concepts of algorithm design and data structures.
Another standard reference and lucid material on many algorithms. Selective reading helped me in getting best results from the book. Their exclusive book on Algorithms (4e) is upcoming.
6.           Algorithms 4e by Sedgewick and Kevin.
Released early 2012. I have read the book, and it left excellent contentment in solving various algorithmic problems. The exercise problems on their website are interesting. Try them.
For above six references, it is strongly recommended to attempt the exercise problems. Just reading will be useless.
7.           Programming Pearls by Bentley
If you feel you understood algorithms usage well, it is the book to read. A must for every programmer and computer science geek.
8.           Data Structures and Algorithms in C++ by Mark Alen Weiss
Another best resource on data structures and algorithms. This book have collection of good problems, data structures, and C++ concepts.
9.           Computer Algorithms by Sara Baase
Another reference on algorithms. Selective reading will be useful, pseudo code in Java.
10.        Donald Knuth books (Volume 1 through Volume 4).
If you have enough time for research these books are for you. If you know well an algorithm, it is time to refer this book for in-depth study.
11.        How To Solve It By Computer by Dromey: A good collection of specific algorithms. Short book, a must read.
12.        Foundations of Algorithms by Richard Neapolitan.
I heard that it is good book. Looking for Indian version of the copy.
A nice book on fundamentals of algorithms. If you have time, read each chapter individually. The chapters are divided per design techniques. The book is special for few number theoretic algorithms. I am still reading it.
A book written by former professor, and present part of a technological revolution company. It emphasizes the mathematical induction as primary approach in designing algorithms. One must read it. Exercises and hits to selected questions, are added bonus to the book. Unfortunately it is costly edition.
Another nice book on algorithms. Good collection of problems, and problem solving techniques.

    No comments: