Tabulation vs. Memoization in Ruby: A Deep Dive

Alessio Bussolari
2 min readNov 2, 2023


Tabulation and memoization are both optimization techniques employed, especially in the domain of algorithms and computation. However, they have different approaches and uses. Using Ruby, a language known for its expressiveness, we can demonstrate and differentiate the two.


What is Tabulation?
Tabulation is a bottom-up dynamic programming technique where you solve all the subproblems first. You then use the solutions of these subproblems to build the solution to bigger problems.

Approach in Ruby:

Let’s consider the classic problem of computing the nth Fibonacci number.

def fibonacci(n)
return n if n <= 1
table = [0, 1]
(2..n).each do |i|
table[i] = table[i - 1] + table[i - 2]

In the above example, we use an array table to store solutions to subproblems. We then combine these solutions to find the desired Fibonacci number.


What is Memoization?
Memoization is a top-down dynamic programming technique where you break down a problem into subproblems. It involves storing the result of expensive function calls and returning the cached result when the same inputs occur again.



Alessio Bussolari

Ruby on Rails programmer since 2009. Current CTO at COSMIC SRL, where I lead the team in creating innovative solutions.