DSA Study plan
Topics
Dynamic Programming
Top-down (Memorization)
Bottom-up (Tabulation)
Divide and Conquer
Sorting Algorithms
Bubble Sort
Quick Sort
Merge Sort
Searching Algorithms
Linear Search
Binary Search
String Matching Algorithms
Z Algorithm
Rabin-Karp Algorithm
Knuth-Morris-Pratt (KMP) Algorithm
Greedy Algorithms
Graph Algorithms
BFS
DFS
Dijkstra’s Algorithm
Kruskal
Prims
Dynamic Programming (Additional)
Kadane’s Algorithm
Bellman-Ford
Floyd-Warshall
Data Structures
Arrays
Matrices
Strings
Linked Lists
Binary Trees
Binary Search Trees
Stacks
Queues
Heaps
TRIEs
Bit Manipulation
Weekly study topic
Week 1-2: Dynamic Programming
Days 1-3: Dynamic Programming Basics
Study the principles of dynamic programming (DP).
Implement simple DP problems.
Focus on top-down (memorization) approach.
Days 4-7: Bottom-up DP and Advanced Concepts
Learn the bottom-up (tabulation) approach.
Explore more complex DP problems.
Practice solving problems related to optimal substructure.
Week 3-4: Divide and Conquer
Days 8-14: Divide and Conquer Algorithms
Understand the divide-and-conquer paradigm.
Solve problems that involve recursive division and merging.
Implement algorithms like merge sort and quicksort.
Week 5-6: Sorting and Searching
Days 15-21: Sorting Algorithms
Study bubble sort, merge sort, and quicksort.
Analyze their time complexity.
Implement and compare these sorting techniques.
Days 22-28: Searching Algorithms
Learn linear search and binary search.
Practice solving search-related problems.
Week 7-8: String Algorithms
Days 29-35: String Matching Algorithms
Dive into Z Algorithm, Rabin-Karp Algorithm, and KMP Algorithm.
Understand their applications in string matching.
Solve problems related to pattern searching.
Week 9-10: Greedy Algorithms
Days 36-42: Greedy Approach
Explore greedy algorithms.
Understand when and how to apply greedy strategies.
Solve problems involving greedy choices.
Week 11-12: Graph Algorithms
Days 43-49: BFS and DFS
Study breadth-first search (BFS) and depth-first search (DFS).
Implement graph traversal algorithms.
Days 50-56: Shortest Path Algorithms
Learn Dijkstra’s algorithm.
Explore Kruskal and Prim’s algorithms for minimum spanning trees.
Week 13: Review and Mock Tests
Days 57-63: Revision and Practice
Review all topics covered so far.
Solve problems from previous weeks.
Days 64-70: Mock Tests
Take mock exams to simulate real conditions.
Identify areas for improvement.
Week 14: Final Preparation
Days 71-77: Dynamic Programming (Advanced)
Cover additional DP topics (e.g., Kadane’s Algorithm, Bellman-Ford, Floyd-Warshall).
Days 78-84: Data Structures and Bit Manipulation
Revise data structures (arrays, matrices, strings, trees, etc.).
Understand bit manipulation.