Recently I stumbled upon one answer in quora regarding for What should one do to master Data Structures and Algorithms? . I like one answer by Adtiya Agarwal very much , so sharing it here . Introduction to Algorithms: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein is a classic and is a considered bible of this field. However, I think that if you are really a beginner in this field and have a moderate programming experience and an average mathematical background, then this book might prove to be a daunting experience. But I would still say that your quest for algorithms and data structures will remain incomplete without reading and understanding this book completely. Do this and there will be no field of computer field which will remain a mystery to you. Anyways, this book assumes a fair amount of background on the part of the reader. If you have an exceptional instructor, then by all means for this book. But if you are not that lucky, then I would suggest you to begin with reading How to Solve it by Computer . This is a book written for people like you and me who want to enter into this beautiful field but lack the weapons in the arsenal to make it past the gates of this mansion. Also, this book is written without emphasizing any language and hence follows a pseudocode - approach which is very important as it works as a detox to the whole "language-oriented" thinking which makes it difficult to think about complex problems because you are too focused on this programming language that you forget to look at the problem. However, if you are not very strong in programming as well and need a book that teaches algorithms by implementing them in a programming language, then I would seriously recommend Sams Teach Yourself Data Structures and Algorithms in 24 Hours: Robert Lafore: 978067231633g3: Amazon.com: Books . It s a very well written book with very lucid explanation. Having read it myself, I can vouch for the effectiveness of this book. Don't try to finish off this book in 24 hours. Take your time to read it. Read it thoroughly. It won't take you far but will make your basics in DS/Algo as well as C++ very strong. If you read this book, then I don't think that you'll need the book I mentioned above. After reading this book, go for CLRS. You will have the treat of your life. If you are java person, then studying Amazon.com: Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms (3rd Edition) (Pts. 1-5) (0785342775785): Robert Sedgewick: Books will make your base strong . However, it takes a rigorous route and teaches you many algorithms. For learning these topics in C, take a look at Algorithms in C, Parts 1-5 (Bundle): Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms (3rd Edition): Robert Sedgewick: 0785342756081: Amazon.com: Books . Post Your Comments and Suggestions !!!