Practical No.10 Dynamic Programming_ Implement Algorithms for Fibonacci Series and Longest Common Subsequence Using Dynamic Programming.
Practical No.10 Dynamic Programming_ Implement Algorithms for Fibonacci Series and Longest Common Subsequence Using Dynamic Programming.
10
Key Concepts:
Practical Implementation
● F(0)=0F(0) = 0F(0)=0
● F(1)=1F(1) = 1F(1)=1
● F(n)=F(n−1)+F(n−2)F(n) = F(n-1) + F(n-2)F(n)=F(n−1)+F(n−2)
for n>1n > 1n>1
Using Tabulation (Bottom-Up DP):
Using Memoization (Top-Down DP):
2. Longest Common Subsequence (LCS)
1. Fibonacci:
○ Time Complexity: O(n)O(n)O(n) (for both tabulation and
memoization)
○ Space Complexity: O(n)O(n)O(n) (due to the table or memoization
dictionary)
2. Longest Common Subsequence (LCS):
○ Time Complexity: O(m×n)O(m \times n)O(m×n), where mmm and
nnn are the lengths of the input strings.
○ Space Complexity: O(m×n)O(m \times n)O(m×n) (for the DP table)
Practical Applications:
1. Fibonacci:
○ Used in problems involving recursion, mathematical modeling, or
optimizations.
2. Longest Common Subsequence:
○ Used in bioinformatics for DNA sequence analysis, file comparison,
and version control systems.