Académique Documents
Professionnel Documents
Culture Documents
Thosewhocannotrememberthepastaredoomedtorepeatit
.
-----George Santayana
Definition:
Dynamic programming(also known asDynamic optimization) is a method
for solving a complex problem by breaking it down into a collection of simpler sub
problems, solving each of those sub problems just once, and storing their
solutions ideally, using a memory-based data structure.
Working Methodology:
1) Divide into Sub problems.
2) Construction of Table for Storage.
3) Combiningusing Bottom-up approach(small to big)
Dynamic Programming
Principles:
Application:
Simple application
Dynamic Programming is best used for the overlapping sub problems to save
time.
The Big-O in first case is O(c^n) or exponential whereas in second case its
O(n).