Dnes som na hodine nebola, poznámky mám od spolužiaka, oni na hodine začali preberať sorty, ako prvý je bubble sort.
Program pracuje na princípe prebublania poľa. Po každom prebublaní sa najväčší prvok dostane na koniec (tie ktoré sú už na konci nerátame). Je nevyužiteľný v praxi, pretože mu to trvá dlho. Vždy porovnáva dva za sebou idúce prvky a ak je ten druhý menší ako ten prvý tak ich vymení.
Program náhodne vygeneruje 15 čísel do 100 a potom ich zoradí od najmenšieho po najväčší.
***
program bublina;
uses crt;
var i,k,p: integer;
var a: array [1..20] of integer;
begin
randomize;
clrscr;
for i:= 1 to 15 do begin
a[i]:= random(100)+1; write(a[i],' ');
end;
for k:= 1 to 14 do begin
for i:=1 to 15-k do
if a[i] > a[i+1] then begin
p:=a[i]; a[i]:=a[i+1]; a[i+1]:=p;
end;
end;
writeln;
writeln('zoradene to je takto');
for i:=1 to 15 do write(a[i],' ');
readln;
end.
***
Tento program je tu.
Tento program pracuje na princípe: Najprv si pozrie všetky prvky od 1. po 14, porovnáva 1. s 2., ak je 2. menší tak ich vymení, potom 2. s 3. a tak ďalej... Najväčší prvok sa tak dostane na koniec. Potom znova pozeráme všetky prvky od prvého po pred-predposledný, posledný je už na svojom mieste, ten pozerať nemusíme, a predposledný si vlastne pozrieme, lebo sa porovná s pred-predposledným...a tak to robí až kým aj najmenší prvok nebude na svojom mieste.
Aplikácia je tu.
—————