Vismo · Create · Library · Topics · Guides · Pricing

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 comparison step highlighted to show how the tree takes shape. A search for 35 then traces the same logic, reaching it in four comparisons. The animation contrasts this balanced case, where operations run in O(log n), with a sorted-input case that degenerates into a linear chain, useful for students learning BST behavior and worst-case complexity.

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

The prompt that made it

Inserting 50, 30, 70, 20, 40, 60, 80, 35 one at a time with the comparison path highlighted, then searching for 35 in four comparisons; O(log n) when balanced, a chain when input is sorted.

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…

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…

Big-O: how running time grows with the input
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 cur…

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…