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 | |||
|
inf-prog-fszi:egyszeru_beilleszteses_rendezes [2017/06/21 09:29] beistvan |
inf-prog-fszi:egyszeru_beilleszteses_rendezes [2017/06/21 12:33] (aktuális) beistvan |
||
|---|---|---|---|
| Sor 1: | Sor 1: | ||
| + | ====== Egyszerű beillesztéses rendezés ====== | ||
| + | |||
| + | **Módszer lényege**: Mintha kártyáinkat egyesével felvéve sorba raknánk. (N-1 menet) | ||
| + | |||
| + | <code bash beilleszt.txt> | ||
| + | Eljárás: | ||
| + | Ciklus J = 2-től N-ig | ||
| + | I := J - 1 | ||
| + | A := A(J) | ||
| + | Ciklus amíg I > 0 és A < A(I) | ||
| + | A(I + 1) := A(I) | ||
| + | I := I - 1 | ||
| + | Ciklus vége | ||
| + | A(I + 1) := A | ||
| + | Ciklus vége | ||
| + | Eljárás vége. | ||
| + | </ | ||
| + | |||
| + | DEMO | ||
| + | |||
| + | Hatékonysági mutatók \\ | ||
| + | **Tárigény**: | ||
| + | **Összehasonlítások száma**: N-1-től N*(N+1)/ | ||
| + | **Mozgatások száma**: 2*N-1-től 2*(N-1)+N*(N-1)/ | ||
| + | **Végrehajtási idő**: 1950 s (N=500) | ||
| + | |||
| + | |||
| + | |||
| + | Pascal forráskód | ||
| + | |||
| + | <code pascal rendezes_egyszeru_beillesztessel.pas> | ||
| + | program rendezes_egyszeru_beillesztessel; | ||
| + | const n = 10; | ||
| + | var a: array [1..n] of integer; | ||
| + | i, j, x: 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 egyszerű beillesztessél | ||
| + | for j:=2 to n do | ||
| + | begin | ||
| + | i:=j-1; | ||
| + | x:=a[j]; | ||
| + | while (i>0) and (x<a[i]) do | ||
| + | begin | ||
| + | a[i+1]: | ||
| + | i:=i-1; | ||
| + | end; | ||
| + | a[i+1]:=x; | ||
| + | end; | ||
| + | writeln(' | ||
| + | for i:=1 to n do | ||
| + | write(a[i], ' '); | ||
| + | readln; | ||
| + | end. | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | [[https:// | ||
| + | |||
| + | Órai gyakorlat | ||
| + | |||
| + | <code pascal beilleszteses_rendezes> | ||
| + | program beilleszteses_rendezes; | ||
| + | const n=8; | ||
| + | var i,j, aktual : integer; | ||
| + | a: array [1..n] of integer; | ||
| + | begin | ||
| + | writeln(' | ||
| + | for i:=1 to n do | ||
| + | begin | ||
| + | write(' | ||
| + | end; | ||
| + | for j:=2 to n do | ||
| + | begin | ||
| + | i:=j-1; | ||
| + | aktual: | ||
| + | while (i>0) and (aktual< | ||
| + | begin | ||
| + | a[i+1]: | ||
| + | i:=i-1; | ||
| + | end; | ||
| + | a[i+1]: | ||
| + | end; | ||
| + | write(' | ||
| + | for i:=1 to n do | ||
| + | write(a[i]: | ||
| + | readln; | ||
| + | end. | ||
| + | </ | ||