Time Complexity: O(n²) average and worst case
Space Complexity: O(1)
How it works: Repeatedly steps through the list, compares adjacent elements and swaps them if they're in the wrong order. The pass through the list is repeated until the list is sorted.