Algorytmy i struktury danych - Programowanie dynamiczne

1. Programowanie dynamiczne to technika projektowania algorytmów stosowana do zagadnień związanych z zagadnieniami optymalizacyjnymi. Polega na rozwiązywaniu podproblemów i zapamiętywaniu ich wyników. W metodzie "dziel i zwycięzaj" wielokrotnie rozwiązuje się ten sam problem, natomiast w programowaniu dynamicznym rozwiązuje się każdy podproblem tylko raz zapamiętując wynik.

2. Podejście wstępujące to takie, w którym najpierw rozwiązuje się mniejsze podproblemy, a potem te większe.

3. Podejście zstępujące z zapamiętywaniem polega na rekurencyjnym wywoływaniu funkcji z zapamiętywaniem wyników. Jeżeli rozwiązanie danego problemu jest już w tabeli z wynikami, to należy je stamtąd odczytać.

Przykład: TUTAJ!