This repository contains C++ implementations of core algorithmic paradigms studied in the Design and Analysis of Algorithms (DAA) course. These paradigms focus on designing efficient solutions and analyzing their time and space complexity.
- Used for problems with overlapping subproblems and optimal substructure
- Improves efficiency by storing intermediate results
- Example: Fibonacci sequence
- Systematically explores all possible solutions
- Backtracks when a partial solution is not valid
- Example: Binary string generation
- Divides a problem into smaller subproblems
- Solves recursively and combines results
- Example: Merge Sort
- Makes the locally optimal choice at each step
- Produces optimal solutions for certain problems
- Example: Coin Change
- C++
- DAA coursework and lab assignments
- Algorithm design and complexity analysis
- Technical interview preparation