|
Sortowanie bąbelkowe polega na porównywaniu parami kolejnych liczb i w przypadku, gdy są ustawione w nieodpowiedniej kolejności - ich przestawianiu. Założenie: ciąg liczb do sortowania: 4,1,6,3 Realizacja: Przebieg pierwszy: 4 1 6 3 - porównujemy 4 i 1 (należy dokonać przestawienia, gdyż 4>1) 1 4 6 3 - porównujemy 4 i 6 (brak przestawienia) 1 4 6 3 - porównujemy 6 i 3 (należy dokonać przestawienia, gdyż 6>3) 1 4 3 6 - liczba 6 jest już na właściwym miejscu Przebieg drugi ( nie zajmujemy się już ostatnia liczbą): 1 4 3 | 6 - porównujemy 4 i 1 (brak przestawienia) 1 4 3 | 6 - porównujemy 4 i 3 (należy dokonać przestawienia, gdyż 4>3) 1 3 4 | 6 - liczba 4 jest już na właściwym miejscu itd. Przykładowa realizacja ww. algorytmu w języku Turbo Pascal: program sortowanie_babelkowe; uses crt; const n=10; var tab:array[1..n] of integer; i,j,k: integer; begin clrscr; writeln('Sortowanie babelkowe'); writeln('Wprowadzanie liczb'); for i := 1 to n do readln(tab[i]); writeln('Liczby przed sortowaniem:'); for i := 1 to n do write(tab[i]); for j := 1 to n - 1 do for i := 1 to n - 1 do if tab[i] > tab[i+1] then begin k:= tab[i]; tab[i]:=tab[i+1]; tab[i+1]:=k; end; writeln('Liczby po sortowaniu:'); for i := 1 to n do write(tab[i]); repeat until keypressed; end.
|