Algorithms and Problem-Solving Techniques (40 Hours)

Sorting Algorithms: Implement and understand the time complexity of various sorting algorithms, including bubble sort, selection sort, insertion sort, merge sort, quick sort, and heap sort.
Searching Algorithms: Implement binary search, linear search, and advanced searching techniques.
Dynamic Programming: Master dynamic programming by solving common problems such as the Knapsack problem, Longest Common Subsequence (LCS), and Fibonacci sequence.
Greedy Algorithms: Learn how to apply greedy algorithms to optimization problems like the activity selection problem and Huffman coding.
Graph Algorithms: Implement and understand algorithms like Dijkstra’s shortest path, Floyd-Warshall, Kruskal’s, and Prim’s algorithms for solving shortest path and minimum spanning tree problems.