Pole se setřídí vzestupně. Porovnávají se tu dva sousední prvky. Jeli prvek na indexu j+1 menší než prvek na aktuálním indexu, tak se tyto prvky přehodí. Toto se opakuje dokud se nedojede na konec pole. Pak se jede od znovu. Počet fází (cyklů) je roven n-1 (počet prvků pole – 1).
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Type TIndex = 1..100; {Počet prvků pole = 100} TPole = Array[TIndex] of integer; {Vytvoření typu pole o 100 prvcích (číslech)} procedure bubble_sort(var pole: TPole; n : TIndex); var i, j : TIndex; s : integer; begin for i := 1 to n-1 do begin for j := 1 to n-i do begin if (pole[j] > pole [j+1]) then begin s := pole[j]; pole[j] := pole [j+1]; pole[j+1] := s; end; end; end; end; |