Procházíme pole zleva doprava a kontrolujeme sousední dvojice prvků. Pokud je levý prvek z dvojice větší než pravý, prvky prohodíme. Ať už jsme provedli prohození, nebo ne, pokračujeme kontrolou následující dvojice (posunutím řídicího indexu o jednu).
Chceme např. setřídit takovouto kolekci čísel: 10, -5, 2, 0, 12, 1
First run | |||||
10 | -5 | 2 | 0 | 12 | 1 |
-5 | 10 | 2 | 0 | 12 | 1 |
-5 | 2 | 10 | 0 | 12 | 1 |
-5 | 2 | 0 | 10 | 12 | 1 |
-5 | 2 | 0 | 10 | 12 | 1 |
-5 | 2 | 0 | 10 | 1 | 12 |
Second run | |||||
-5 | 2 | 0 | 10 | 1 | 12 |
-5 | 2 | 0 | 10 | 1 | 12 |
-5 | 0 | 2 | 10 | 1 | 12 |
-5 | 0 | 2 | 10 | 1 | 12 |
-5 | 0 | 2 | 1 | 10 | 12 |
-5 | 0 | 2 | 1 | 10 | 12 |
Third run | |||||
-5 | 0 | 2 | 1 | 10 | 12 |
-5 | 0 | 2 | 1 | 10 | 12 |
-5 | 0 | 1 | 2 | 10 | 12 |
-5 | 0 | 1 | 2 | 10 | 12 |
-5 | 0 | 1 | 2 | 10 | 12 |
Fourth run - no swaps | |||||
-5 | 0 | 1 | 2 | 10 | 12 |
DONE |
Více informací: https://en.wikipedia.org/wiki/Bubble_sort