Sortowanie bąbelkowe

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.

  • Sortowanie przez wybór
  • Sortowanie przez wstawianie
  • Sortowanie przez scalanie
Ocena: 5.0

Komentarze