Super Study Guide: A Free Algorithms and Data Structures eBook
Check out Super Study Guide: Algorithms and Data Structures, a free ebook covering foundations, data structures, graphs, and trees, sorting and searching.
Twin brothers Afshine Amidi and Shervine Amidi have come together to bless us with a Super Study Guide about Algorithms and Data Structures.
Both brothers are Software Engineers at Google; with Afshine Amidi holding a Master's degree in Business Analytics and Data Science from Massachusetts Institute of Technology and Shervine Amidi a Master’s degree in Computational and Mathematical Engineering from Stanford University. They have and currently are teaching using their previous study guides at MIT and Stanford University.
Their new study guide: Super Study Guide: Algorithms and Data Structures is broken down into 4 major sections:
- Data Structures
- Graphs and Trees
- Sorting and Searching
Each section goes into further depth on each area.
The foundation's chapter goes through Algorithmic concepts, Mathematical concepts, and Classic problems. These are all simplified to give you the best approach to understanding the rest of the study guide and help you learn.
To give you an example, this is how the twin brothers have explained ‘Algorithms’:
“Given a problem, an algorithm A is a set of well-defined instructions that run in a finite amount of time and space. It receives an input I and returns an output O that satisfies the constraints of the problem. As an example, a problem can be to check whether a number is even. In order to do that, an algorithm could be to check whether the number is divisible by 2.”
You can’t get a better simple explanation of an Algorithm with a visual understanding than this right?
In the Data Structures section, the brother dive into:
- Arrays and Strings
- Stacks and Queues
- Hash tables
- Advances hash tables
- Linked lists
Each of these sections is very simplified, providing you with the information you need and not overloading you with excess information.
Graphs and Trees
The next section goes into more depth about Graphs and Trees, containing only three parts:
- Advanced Graph Algorithms
- Advanced Trees
Each section provides you with step-by-step visualizations to help you get a better grasp of each algorithm.
For example, this is the definition of Segment Trees:
“A segment tree S is a data structure represented by a binary tree of nodes s[i,j] that is designed to support the main types of range queries (minimum, maximum, sum) on an array A=[a0,...,an?1]. It has an update time complexity of O(log(n)).”
With a visualization to represent this definition:
Sorting and Searching
Last but not least, the last section is about Sorting and Searching and dives into the different algorithms of the two.
In the Sorting section, you will learn more about the different sort algorithms such as bubble sort, merge sort, and radix sort.
In the Searching section, you will learn about basic search, binary search, and substring search. Below is the visual representation explaining linear search:
This is the Book You Need
If you are looking to enter the world of Data Science or brush up on your current knowledge; this study guide is for you. Learning the theory behind Data Science can be very overwhelming; however, Afshine Amidi and Shervine Amidi provide us with simplified explanations and visualizations to keep us going
Nisha Arya is a Data Scientist and Freelance Technical Writer. She is particularly interested in providing Data Science career advice or tutorials and theory based knowledge around Data Science. She also wishes to explore the different ways Artificial Intelligence is/can benefit the longevity of human life. A keen learner, seeking to broaden her tech knowledge and writing skills, whilst helping guide others.