/dsa

Primary LanguageJavaScript

📚 Course Outline: Introduction to DSA

What is DSA?

  • Importance of DSA in Front-End Development
  • Big-O Notation (Time & Space Complexity)
    • Understanding Big-O Notation
    • Common Time Complexities (O(1), O(n), O(log n), O(n²), etc.)
    • Analyzing Time & Space Complexity of Algorithms
  • Practice Problems: 10 problems to analyze time complexity

📊 Arrays

  • Basics of Arrays
  • Common Array Operations
    • Insertion
    • Deletion
    • Traversal
  • Two-Pointer Technique
  • Sliding Window Technique
  • Practice Problems: 15-20 problems focusing on arrays and their operations

🔤 Strings

  • Basics of Strings
  • Common String Operations
    • Concatenation
    • Substrings
    • Reversal
  • String Matching Algorithms (Naive, KMP)
  • Anagram and Palindrome Problems
  • Practice Problems: 15-20 problems focusing on strings

🔗 Linked Lists

  • Introduction to Linked Lists (Singly, Doubly)
  • Operations on Linked Lists
    • Insertion
    • Deletion
    • Reversal
  • Detecting Cycles in Linked Lists
  • Practice Problems: 15-20 problems on linked lists

📦 Stacks and Queues

  • Introduction to Stacks and Queues
  • Stack Operations
    • Push
    • Pop
    • Peek
  • Queue Operations
    • Enqueue
    • Dequeue
    • Peek
  • Implementation of Stacks and Queues using Arrays/Linked Lists
  • Applications of Stacks and Queues
  • Practice Problems: 15-20 problems on stacks and queues

🔄 Recursion

  • Understanding Recursion
    • Base Case and Recursive Case
  • Recursion vs Iteration
  • Backtracking
  • Practice Problems: 15-20 problems on recursion and backtracking

⚙️ Sorting Algorithms

  • Introduction to Sorting
  • Bubble Sort, Selection Sort, Insertion Sort
  • Merge Sort, Quick Sort
  • Time and Space Complexity Analysis of Sorting Algorithms
  • Practice Problems: 10-15 problems on sorting algorithms

🔍 Searching Algorithms

  • Linear Search
  • Binary Search
  • Binary Search on Sorted Arrays
  • Applications of Binary Search
  • Practice Problems: 10-15 problems on searching algorithms

🌳 Trees

  • Introduction to Trees (Binary Trees, Binary Search Trees)
  • Tree Traversals (In-order, Pre-order, Post-order)
  • Operations on Trees
    • Insertion
    • Deletion
    • Searching
  • Height and Depth of a Tree
  • Practice Problems: 15-20 problems on trees

🌐 Graphs

  • Introduction to Graphs (Directed, Undirected)
  • Graph Representation
    • Adjacency Matrix
    • Adjacency List
  • Depth First Search (DFS)
  • Breadth First Search (BFS)
  • Shortest Path Algorithms (Dijkstra, Bellman-Ford)
  • Practice Problems: 15-20 problems on graphs

📈 Dynamic Programming

  • Introduction to Dynamic Programming
  • Memoization vs Tabulation
  • Common DP Problems (Knapsack, Coin Change, etc.)
  • Practice Problems: 15-20 problems on dynamic programming

💡 Greedy Algorithms

  • Introduction to Greedy Algorithms
  • Greedy Choice Property
  • Common Greedy Problems (Activity Selection, Huffman Coding, etc.)
  • Practice Problems: 10-15 problems on greedy algorithms

🌟 Advanced Topics

  • Hashing
  • Heaps and Priority Queues
  • Tries
  • Segment Trees
  • Practice Problems: 20-25 mixed