Vismo · Create · Library · Topics · Guides · Pricing

Big-O: how running time grows with the input

This animation plots O(1), O(log n), O(n), O(n log n), O(n^2), and O(2^n) on shared axes, showing how each curve grows as input size increases. Each complexity class is paired with a familiar algorithm example, such as array lookup, binary search, linear scan, sorting, nested loops, or recursive subsets. It helps students see why constants are ignored and why shape, not exact values, determines scalability, making it useful for computer science and algorithms courses.

16:9 · every frame verified for overlaps, spacing and edges before rendering

The prompt that made it

Curves for O(1), O(log n), O(n), O(n log n), O(n^2) and O(2^n) drawn on the same axes with an example algorithm for each; constants are dropped, the shape is what matters.

Make your own version

Make the next one in this series

Related animations

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…

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…

Linear search vs binary search: count the comparisons
Linear search vs binary search: count the comparisons

This animation compares two ways to find the value 51 in a sorted list of 16 numbers. Linear search checks eac…

Quicksort: pick a pivot, partition, recurse
Quicksort: pick a pivot, partition, recurse

This animation walks through the Lomuto partition method used in quicksort, choosing the last element as pivot…

Merge sort: split, then merge sorted halves
Merge sort: split, then merge sorted halves

An array of eight values is recursively divided into halves until single elements remain, then pairs are merge…