Vismo · Create · Library · Topics · Guides · Pricing

Quicksort: pick a pivot, partition, recurse

This animation walks through the Lomuto partition method used in quicksort, choosing the last element as pivot and tracking two pointers, i and j, as they scan the array. Values smaller than the pivot are swapped into place on the left while j continues scanning, and the pivot finally swaps into its correct sorted position. The array then splits into left and right subarrays, each recursively partitioned the same way. Useful for students learning sorting algorithms and recursive divide-and-conquer strategies.

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

The prompt that made it

Lomuto partition with the last value as pivot and two pointers i and j; the pivot lands in its final place with smaller values left and bigger right, then each side is sorted the same way.

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…

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…

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…