A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Előző változat mindkét oldalon Előző változat Következő változat | Előző változat | ||
inf-prog-fszi:buborekos_rendezes [2017/06/21 09:23] beistvan |
inf-prog-fszi:buborekos_rendezes [2017/06/21 09:24] (aktuális) beistvan |
||
---|---|---|---|
Sor 1: | Sor 1: | ||
+ | ====== Buborékos rendezés ====== | ||
+ | |||
+ | **Módszer lényege**: | ||
+ | Vektor végéről indulva minden elemet összehasonlítunk az előtte lévővel. | ||
+ | Ha rossz a sorrend, akkor csere. (Cs=cserehely) | ||
+ | Az első menet végére az első helyen a megfelelő elem áll. | ||
+ | Ezt az elvet folytatjuk egyre kevesebb elemmel. (N-1 menet) | ||
+ | |||
+ | <code bash buborek.txt> | ||
+ | Eljárás: | ||
+ | Ciklus I = 2-től N-ig | ||
+ | Ciklus J = N-től I-ig -1-esével | ||
+ | Ha A(J - 1) > A(J) akkor Cs := A(J - 1) | ||
+ | A(J - 1) := A(J) | ||
+ | A(J) := Cs | ||
+ | Ciklus vége | ||
+ | Ciklus vége | ||
+ | Eljárás vége. | ||
+ | </ | ||
+ | |||
+ | DEMO | ||
+ | |||
+ | Hatékonysági mutatók | ||
+ | **Tárigény**: | ||
+ | **Összehasonlítások száma**: N*(N-1)/2 \\ | ||
+ | **Mozgatások száma**: 0-tól 3*N*(N-1)/ | ||
+ | **Végrehajtási idő**: 3620 s (N=500) | ||
+ | |||
+ | |||
+ | Pascal forráskód | ||
+ | |||
+ | <code pascal rendezes_buborek_rendezessel.pas> | ||
+ | program rendezes_buborek_rendezessel; | ||
+ | const n = 10; | ||
+ | var a: array [1..n] of integer; | ||
+ | i, j, cs: integer; | ||
+ | begin | ||
+ | randomize; | ||
+ | //A tömb elkészítése | ||
+ | for i:=1 to n do | ||
+ | begin | ||
+ | a[i]: | ||
+ | write(a[i], ' '); | ||
+ | end; | ||
+ | Writeln; | ||
+ | //Tömb rendezése buborékos rendezéssel | ||
+ | for i:=2 to n do | ||
+ | for j:=n downto i do | ||
+ | if a[j-1]> | ||
+ | begin | ||
+ | cs:=a[j-1]; | ||
+ | a[j-1]: | ||
+ | a[j]:=cs; | ||
+ | end; | ||
+ | writeln(' | ||
+ | for i:=1 to n do | ||
+ | write(a[i], ' '); | ||
+ | readln; | ||
+ | end. | ||
+ | |||
+ | </ | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | <code pascal rendezes_buborek_rendezessel.pas> | ||
+ | program kivalasztasos_rendezes; | ||
+ | const n=8; | ||
+ | var i,j, cs : integer; | ||
+ | a: array [1..n] of integer; | ||
+ | begin | ||
+ | writeln(' | ||
+ | for i:=1 to n do | ||
+ | begin | ||
+ | write(' | ||
+ | end; | ||
+ | for i:=1 to n-1 do | ||
+ | for j:=i+1 to n do | ||
+ | if a[j]< | ||
+ | begin | ||
+ | cs:=a[j]; | ||
+ | a[j]:=a[i]; | ||
+ | a[i]:=cs; | ||
+ | end; | ||
+ | write(' | ||
+ | for i:=1 to n do | ||
+ | write(a[i]: | ||
+ | readln; | ||
+ | end. | ||
+ | |||
+ | </ | ||
+ | |||
+ | Órai gyakorlat | ||
+ | |||
+ | <code pascal buborekos_rendezes.pas> | ||
+ | program buborekos_rendezes; | ||
+ | const n=8; | ||
+ | var i,j, cs : integer; | ||
+ | a: array [1..n] of integer; | ||
+ | begin | ||
+ | writeln(' | ||
+ | for i:=1 to n do | ||
+ | begin | ||
+ | write(' | ||
+ | end; | ||
+ | for i:=2 to n do | ||
+ | for j:=n downto i do | ||
+ | if a[j-1]> | ||
+ | begin | ||
+ | cs:=a[j-1]; | ||
+ | a[j-1]: | ||
+ | a[j]:=cs; | ||
+ | end; | ||
+ | write(' | ||
+ | for i:=1 to n do | ||
+ | write(a[i]: | ||
+ | readln; | ||
+ | end. | ||
+ | </ |