Rekürsif algoritmalarımızın tekrar eden hesaplamalarını hesaplamak yerine önceden hesaplamış olduğu değerler içerisinden kullanan programalamadır. Daha hızlı çalışmaktadır fakat hesaplanan değerleri tutmak için ekstra alan gerekir.
Yukarıda yer alan fibonacci ağaç yapasında, 1, 2 ve 3 değerlerinin tekrardan kullanıldığını görülebilir. Her seferinde tekrardan bu değerlerin hesaplanması yerine hesaplanan değerleri tutarak bir sonrakı gereken yerde tuttuğumuz yerden kullanmamızdır.