Repeatedly compares adjacent elements and swaps them if in wrong order. O(n²) worst case. Simple but inefficient for large arrays.