$ python3 visual_sort.py
Welcome to Bubble Sort!
Original list: [5, 6, 5, 9, 1]
-- Pass #1 --
5 <= 6 -- no swap
|5||6| 5 9 1
5 6 5 9 1
6 > 5 -- swap
5 |6||5| 9 1
5 5 6 9 1
6 <= 9 -- no swap
5 5 |6||9| 1
5 5 6 9 1
9 > 1 -- swap
5 5 6 |9||1|
5 5 6 1 9
-- Pass #2 --
5 <= 5 -- no swap
|5||5| 6 1 9
5 5 6 1 9
5 <= 6 -- no swap
5 |5||6| 1 9
5 5 6 1 9
6 > 1 -- swap
5 5 |6||1| 9
5 5 1 6 9
6 <= 9 -- no swap
5 5 1 |6||9|
5 5 1 6 9
-- Pass #3 --
5 <= 5 -- no swap
|5||5| 1 6 9
5 5 1 6 9
5 > 1 -- swap
5 |5||1| 6 9
5 1 5 6 9
5 <= 6 -- no swap
5 1 |5||6| 9
5 1 5 6 9
6 <= 9 -- no swap
5 1 5 |6||9|
5 1 5 6 9
-- Pass #4 --
5 > 1 -- swap
|5||1| 5 6 9
1 5 5 6 9
5 <= 5 -- no swap
1 |5||5| 6 9
1 5 5 6 9
5 <= 6 -- no swap
1 5 |5||6| 9
1 5 5 6 9
6 <= 9 -- no swap
1 5 5 |6||9|
1 5 5 6 9
-- Pass #5 --
1 <= 5 -- no swap
|1||5| 5 6 9
1 5 5 6 9
5 <= 5 -- no swap
1 |5||5| 6 9
1 5 5 6 9
5 <= 6 -- no swap
1 5 |5||6| 9
1 5 5 6 9
6 <= 9 -- no swap
1 5 5 |6||9|
1 5 5 6 9
No swaps on pass 5, the list is sorted:
[1, 5, 5, 6, 9]
Bubble Sort Complete!