Skip to content

Course BreakdownΒΆ

This course is broken down into 5 sections:

  1. Basics
    • Introduction
    • Recursion
    • Algorithm Runtime Analysis
  2. Physical Datastructures
    • Arrays
    • LinkedLists
  3. Logical Datastructures
    • Tree
    • Hashing
    • Stacks
    • Queues
    • Graphs
  4. Miscellaneous topics
    • Sorting
  5. 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)