Dinamik programlama: Fibonacci, sırt çantası ve memoization
Kısaca: Dinamik programlama, çakışan alt problemli sorunları ara sonuçları yeniden hesaplamak yerine saklayarak çözer; bu, üstel hesaplamaları polinom hesaplamalara çevirir.
Biraz daha ayrıntılı: Özyinelemeli bir çözüm aynı alt problemleri tekrar tekrar çözüyorsa, sonuçları saklarsınız. İki yol: memoization (yukarıdan aşağıya: özyineleme + önbellek) ve tablolama (aşağıdan yukarıya: bir tabloyu doldurma).
Ayrıntılı
Örnek Fibonacci
`fib(n) = fib(n−1) + fib…
Ayrıca bak: Özyineleme, Açgözlü algoritmalar, Büyük O gösterimi