O(n²) · comparison sort
Adjacent pairs are compared and, if out of order, swapped. Each pass pushes the largest remaining value to the end — repeat until nothing moves.
One row per operation — the same format you'd fill in by hand for an exam-style trace question. Highlighted cells show the values just touched.