|
Zobacz także:
Sortowanie przez wstawianie z przykładowymi programami w C++,Pascalu
Algorytm Euklidesa z przykładowymi programami w C++ i Pascalu
Sito Eratostenesa z przykładowymi programami w Delphi,C++,Javie,Pascalu
Zasada działania
W trakcie sortowania b±belkowego porównywane s± kolejne elementy np. tablicy i je¶li elementy s± w złej kolejno¶ci
to s± one zamieniane miejscami. Je¶li sortowana struktura danych posiada n elementów to aby sprawdzić wszystkie
elementy musi być wykonane n-1 porównań. W najmniej korzystnym przypadku element, który powinien znaleĽć się
na pocz±tku listy (tablicy) znajduje się na końcu. Ponieważ przy jednym sprawdzeniu element może się przesun±ć
tylko o jedno miejsce to musimy wykońać n-1 sprawdzeń listy, czyli zostanie wykonanych (n-1)*(n-1) porównań. W
trakcie zamiany warto¶ci w tablicy wykorzystywana jest zmienna pomocnicza tmp.
Sortowanie b±belkowe - Pascal
program sort;
var tablica:array[0..4] of integer;
i,j,v,c,tmp : integer;
begin
clrscr;
{wypelnianie tablicy}
tablica[0] := 124;
tablica[1] := 39;
tablica[2] := 50;
tablica[3] := 100;
tablica[4] := 3;
{sortowanie babelkowe}
for i:=0 to 3 do
for j:=0 to 3 do
if (tablica[j]>tablica[j+1]) then
begin
tmp := tablica[j];
tablica[j] := tablica[j+1];
tablica[j+1] := tmp;
end;
{ wypisywanie wynikow }
for i:=0 to 4 do
writeln(tablica[i]);
readln;
end.
Sortowanie b±belkowe w Pascalu - program w działaniu
Sortowanie b±belkowe - Java
public class sortowanie
{
public static void main(String[] arg)
{
int i,j,tmp;
int[] tablica = new int[5];
/* wypełnianie tablicy*/
tablica[0]=127;
tablica[1]=12;
tablica[2]=50;
tablica[3]=1;
tablica[4]=110;
/* sortowanie b±belkowe */
for (i=0;i<=3;i++)
for (j=0;j<=3;j++)
if (tablica[j]>tablica[j+1])
{
tmp = tablica[j];
tablica[j] = tablica[j+1];
tablica[j+1] = tmp;
}
/* wy¶wietlanie wyników */
for (i=0;i<=4;i++)
System.out.println(tablica[i]);
}
}
Program sortuj±cy w języku java w działaniu.
Sortowanie b±belkowe - C++
int i,j,x,tmp;
int tablica[5];
/* wczytywanie liczb z klawiatury */
cout << "Podaj 5 liczb : \n";
for (i=0; i<=4; i++)
cin >>tablica[i];
/* sortowanie b±belkowe */
for (i=0;i<=3; i++)
for (j=0;j<=3; j++)
if (tablica[j]>tablica[j+1])
{
tmp = tablica[j];
tablica[j] = tablica[j+1];
tablica[j+1] = tmp;
}
cout << "\n\n";
/* wy¶wietlanie posortowanych liczb */
for (i=0; i<=4; i++)
cout << tablica[i] << " , ";
cout << "\n\n";
Program sortuj±cy w C++ w działaniu.
Sortowanie b±belkowe - Delphi
procedure TForm1.Button1Click(Sender: TObject);
var tablica:array[0..14] of integer;
i,j,v,c,tmp : integer;
begin
{wypełnianie tablicy}
for i:=0 to 14 do
begin
val(StringGrid1.Cells[0,i],v,c);
tablica[i] := v;
end;
{sortowanie b±belkowe}
for i:=0 to 13 do
for j:=0 to 13 do
if (tablica[j]>tablica[j+1]) then
begin
tmp := tablica[j];
tablica[j] := tablica[j+1];
tablica[j+1] := tmp;
end;
{wypełnianie grida wynikami}
for i:=0 to 14 do
StringGrid2.Cells[0,i] := IntToStr(tablica[i]);
end;
Program sortuj±cy w Delphi w działaniu.
|
|
|