Compare adjacent pairs left to right. Swap if out of order. Largest bubbles to the end each pass. Boolean flag: if a pass has zero swaps, stop early — already sorted!