Repeatedly compares adjacent pairs left-to-right and swaps them if they are in the wrong order, so each pass carries the largest unsorted value step by step to its correct position at the end.
The simplest O(n²) sort with no lookahead or memory, its very simplicity means it performs more redundant comparisons than any other straightforward sort.