less than 1 minute read

This is an illustrated book with examples and exercises to help you understand how algorithms work. It serves as a good bridge for non-CS students and a refresher for CS students.

It covers the common and basic algorithms such as binary search, selection sort, BFS, DFS, Dijkstra's algorithm, greedy algorithms, dynamic programming and K-nearest neighbours. The book also covers data structures such as arrays, linked lists, hash tables, trees, heaps and graphs.

I especially liked the chapter on dynamic programming as it is a topic that I have always struggled with. The author provided a good explanation of how to approach dynamic programming problems and how to break them down into smaller sub-problems. The author also provided a good explanation of how to use memoization to improve the performance of dynamic programming algorithms.

I would recommend this book to visual learners who want to understand how algorithms work, along with the examples and exercises. The examples are available in Python here: https://github.com/egonSchiele/grokking_algorithms.

Comments