I've a good idea of what Big-O is, and I also know a few basic sorting algorithms, although, for some reason, I was never comfortable with them, and I keep forgetting them. I've been programming for 4 years in Java, Python, C and C++; I've been a decent programmer. Now, I want to move beyond learning programming languages and start learning algorithms.
I tried 'Introduction to Algorithms' by Cormen et al. but the Math is too dense for me (or, may be, I'm too dense for the Math in that book).
Now, I'm planning to take up Algorithm Design Manual by Steve Skiena. Would you recommend it for my situation? Do you have any other recommendations if you think this is not the one for me?
The average reader, reading at a speed of 300 WPM, would take 8 hours and 4 minutes to read The Algorithm Design Manual by Steven S. Skiena. As an Amazon Associate, How Long to Read earns from qualifying purchases.
The book: Data structures and Algorithms Made Easy, by Narsimha Karumanchi is a very famous book on Data structures and Algorithms. This book is a very beginner-friendly book.
The reader-friendly The Algorithm Design Manual provides straightforward access to combinatorial algorithms technology, stressing design over analysis. The first part, Techniques, provides accessible instruction on methods for designing and analyzing computer algorithms.
It is available in C language as well as in Java. Basically Algorithm is technique to solve problems so language doesn't matter at all. How should I read "The Algorithm Design Manual" by Steven S.
I would certainly recommend the Skiena book. You've started to learn about algorithms, you should start to learn algorithms too.
To whoever edited this answer and replaced the last occurrence of the word algorithms with the word mathematics: I meant algorithms when I wrote this answer, I still mean algorithms, replacing the word with mathematics materially changes the answer. If you think that mathematics is what OP should learn, post your own answer to that effect. If you had troubled to read the commentary below you would understand why I chose the word algorithms and not mathematics.
I would recommend against "Algorithm Design Manual" for your purposes and for skimming Cormen or Wikipedia instead.
After a short introduction to basic algorithmic topics, pages 171-437 don't really teach you neither about how algorithms work nor how to design them, but more about what algorithms exist and where to find their implementations (sometimes it refers you to implementations you will need to buy, like in the section on Linear Programming)
For example there are 3 pages on matrix multiplication, which give a few examples of what it is useful for, present the naive O(N3) algorithm, and mention there are better algorithms like Strassen's O(N2.81) (without describing the algorithm), and recommend that you to use the LAPACK library for it.
So if you want to learn how algorithms work, rather than what algorithms exist and where to find their implementations, I again, recommend against "Algorithm Design Manual".
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With