Skip to content

Instantly share code, notes, and snippets.

@egonSchiele
Last active July 20, 2018 01:40
Show Gist options
  • Star 26 You must be signed in to star a gist
  • Fork 6 You must be signed in to fork a gist
  • Save egonSchiele/c1ca3e08749169463d37 to your computer and use it in GitHub Desktop.
Save egonSchiele/c1ca3e08749169463d37 to your computer and use it in GitHub Desktop.
Why read Grokking Algorithms?

If you have already taken a course in algorithms, why read Grokking Algorithms (manning.com/bhargava)?

If you were learning graph algorithms, which approach would you prefer:

  1. Imagine you have to take public transit from your home to your office. How do you figure out the fastest route? Use graph algorithms! OR

  2. We can choose between two standard ways to represent a graph G = (V, E): as a collection of adjacency lists or as an adjacency matrix. Either way applies to both directed and undirected graphs.

I prefer the first way: lead with lots of examples, and clear writing. The second way is an excerpt from "Introduction to Algorithms"...that's how they start their section on graph algorithms.

I have spent a lot of time coming up with clear examples for "sticking points". For example, you might still be wondering:

  • What does recursion have to do with the stack?
  • I understand recursion, but I don't know how to come up with a recursive solution to a problem.
  • Why does quicksort run in O(n lg n) time in the average case?
  • How are hash tables implemented?
  • How does dynamic programming work again?
  • What is the difference between breadth-first search and dijkstra's algorithm?

I think the current set of books on algorithms have a problem: they don't teach intermediate topics well. Those topics require a few leaps in thought. A lot of people don't make those leaps of thought and so they are not confident about their grasp of algorithms. I have spent a lot of time making sure there are no leaps of thought required in this book. If you had the same problem I did with other algorithms books, you might find mine easier to read!

Also: this book is not a reference manual. I don't teach you every single sorting algorithm there is, because you don't need that information. This book contains practical knowledge only.

I hope that answers your question! If you find any sticking points, let me know in the forum! I have already gotten a lot of good feedback from there.

@Arjun-Mavai
Copy link

Literally this book is amazing , only one thing it is lacking is its price. Please lower the price of this book whole computer science world is going to buy this book.

@int3rlop3r
Copy link

+1 for the Indian Edition!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment