BubbleSort
Bublinkové třídění
Tento algoritmus je velmi pomalý v neuspořádaných polích, ale zato velmi efektivní v polích částečně uspořádaných. Postupně se systematicky porovnávají dvojice sousedních prvků a vyměňují se spolu vždy, když menší číslo následuje po větším. Po prvním průchodu FOR cyklem je zajištěno, že největší číslo je na konci pole. Druhý průchod už můžeme provádět jen ve zbytku pole. Po ukončení druhého průchodu jsou největší dvě čísla správně umístěna. Celý postup opakujeme až do uspořádání celého pole.
|
3
|
5
|
2
|
1
|
4
|
10
|
8
|
6
|
9
|
7
|
|
3
|
2
|
1
|
4
|
5
|
8
|
6
|
9
|
7
|
10
|
|
2
|
1
|
3
|
4
|
5
|
6
|
8
|
7
|
9
|
10
|
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
|
Neaktivní čísla Přehazovaná čísla Čísla jdoucí na konec |
|
Takto vypadá Bubbletsort v Delphi procedure BubbleSort(var
P : TPoleCisel); // // uspořádá
pole podle velikosti for i := 0 to length(p)-
1 do //pro všechny prvky kromě
posledního if Pole[j] > Pole[j+1]
then //pokud je větší číslo před
menším begin //
tak je prohodí pom := Pole[j+1]; end; |