Vismo · Create · Explore · Topics · Guides · Pricing

Fibonacci: the recursion tree repeats work; memoisation removes it

This animation draws the full recursion tree for fib(5), showing all 15 calls and highlighting the repeated subtrees that cause exponential growth (roughly 1.6^n calls). It then rebuilds the same computation using a memo table, marking each unique subproblem once so only n calls are needed. The side-by-side view makes visible why caching results turns wasteful recursive branching into linear-time dynamic programming, useful for students learning algorithm efficiency and recursion.

16:9 · Preview before teaching · automatic layout checks do not establish subject accuracy

The prompt that made it

The recursion tree for fib(5) with the repeated subtrees highlighted (15 calls, about 1.6^n in general), then a memo table that stores each answer once so the work becomes n calls; dynamic programming.

Make your own version

Make the next one in this series

Related animations

How A Perceptron Makes A Decision
How A Perceptron Makes A Decision

This animation visualizes a single perceptron processing weighted inputs, summing them with a bias, and passin…

From logic gates to arithmetic: the half adder
From logic gates to arithmetic: the half adder

This animation shows how a half adder circuit uses an XOR gate to compute the sum bit and an AND gate to compu…

Minimum spanning tree with Kruskal's algorithm
Minimum spanning tree with Kruskal's algorithm

A weighted graph is processed by sorting all edges from cheapest to most expensive, adding each one only if it…

Recursion on the call stack: 5! unwinds
Recursion on the call stack: 5! unwinds

This animation visualizes fact(5) as it pushes five stacked frames, one for each recursive call, until reachin…

Binary search tree: smaller left, larger right
Binary search tree: smaller left, larger right

Values 50, 30, 70, 20, 40, 60, 80, and 35 are inserted one at a time into a binary search tree, with each comp…

Hash tables: a formula decides where each key lives
Hash tables: a formula decides where each key lives

Seven buckets receive keys according to key mod 7, with collisions stacked as chains beneath each bucket. A lo…