Divide and Conquer
Concept and strategy.
Examples: merge sort, quick sort, binary search.
Dynamic Programming
Principle of optimality.
Memoization vs. tabulation.
Examples: Fibonacci numbers, Knapsack problem, Longest Common Subsequence.
Greedy Algorithms
Characteristics of greedy methods.
Examples: Kruskal's and Prim's algorithms, Dijkstra's algorithm, Huffman coding.
Backtracking and Branch and Bound
Solving combinatorial problems.
Examples: N-Queens problem, Sudoku solver.
Algorithm Correctness
Proof techniques.
Loop invariants.
Inductive proofs for recursive algorithms.
Complexity Analysis of Advanced Algorithms
Analyzing time and space requirements.
Applications of Algorithm Design Techniques
Real-world problems and solutions.