Course BreakdownΒΆ
This course is broken down into 5 sections:
- Basics
- Introduction
- Recursion
- Algorithm Runtime Analysis
- Physical Datastructures
- Arrays
- LinkedLists
- Logical Datastructures
- Tree
- Hashing
- Stacks
- Queues
- Graphs
- Miscellaneous topics
- Sorting
- Algorithm techniques
- Magic Framework
- Greedy algorithm
- Divide & Conquer
- Dynamic programming
In the Introduction
section first we will understand:
- What is a Data Structure
- Examples of Data structures in day to day life
- Data Structures vs Algorithms
- Why companies ask Data Structure & Algorithm knowledge in interviews
- Which companies as Data Structure knowledge in interviews
- Types of Data Structures
In the Recursion
section we will understand:
- What is recursion
- Why should we learn recursion
- Examples of recursion
- How recursion works internally
- Recursion vs iterations
- When to use/avoid recursion
- Practical use of Recursion
In the Algorithm Run Time Analysis
we will understand:
- What & Why of Algorithm Runtime Analysis
- Types of Time Complexity
- What are Notations
- How to Calculate Time Complexity - Iterative / Recursive
Arrays: - What is an array and why use it - Types of arrays - How is an Array represented in memory - Common operations like Creating/Inserting/Deleting/Searching etc - Practical uses of Array - Pros and cons of Array
Linked Lists: - What is a linked list and why use it - Types of Linked Lists - How is a Linked List represented in memory - Common operations like Creating/Inserting/Deleting/Searching/etc - Practical use of Linked Lists - Pros and sons of Linked Lists
Stacks: - What is a stack - Why should we learn stack - Common operations - When to use/avoid stacks - Practical uses of stacks
Queue: - What is a queue - Why should we learn queues - Common operations - When to use/avoid queues - Practical uses of queues
Trees: - What is a try and why use it - Types of trees: - Binary tree - BST - Heap - AVL Tree - Trie
Graphs: - What is a graph and why use it - Types of graphs - Graph traversal techniques - Topological sorting - Single source shortest path - All pair shortest path - Minimum spanning tree - Pros & cons, practical uses, comparisons.
Hashing: - What is hashing and why use it - Sample good Hash function - Collision Resolution techniques - Hashing vs Array vs Linked List vs Tree - What happens when Hash Table is full - Pros & Cons of Collision Resultution techniques - When to use which Collision Resulution Technique - When to use/avoid hashing - Practical uses of hashing
Sorting: - What is Sorting? - Practical uses of sorting - Types of sorting - in-place, out-place, stable, unstable - Why should we read so many sorting techniques - Problems & Solutions (Bubble sort, Selection Sort, Insertion Sort, Bucket Sort, Merge Sort, Quick Sort, Heap Sort)