Program RendezesKeret; { Rendez‚si algoritmusok kipr˘b l s hoz keret. A rendez‚sek egy ElemSzam m‚ret r t”mbben t”rt‚njen. T”bbf‚le f”lt”lt‚s k”zl lehet v lasztani: - a n”vekv“en / cs”kken“en rendezett“l, - a majdnem rendezetten  t, - v‚letlenszeren kit”lt”ttig. A f”lt”lt‚s nemcsak az r-re vonatkozik, hanem az s-re is. Ez haszn lhat˘ f”l a tov bbi rendez‚sek kiindul˘ ‚rt‚k‚nek be llĄt s ra. } Uses Crt,Dos; Const MaxN=1000; Type Elem=Integer; Sorozat=Array[1..MaxN] of Elem; Var Kezdet,Veg,ElteltIdo: LongInt; s,r : Sorozat; {A f”lt”lt‚sek mindkett“t be llĄtj k, a rendez‚sek az r-t rendezik.} ElemSzam: Integer; i,j:integer; {$I RENDMENU.PAS} { Ebben a file-ban tal lhat˘ a rendez‚shez szks‚ges menz“ program. Sz munkra ‚rdekes most ebb“l mind”ssze: - Menuzes(FoMenu) , amely beindĄtja a p rbesz‚det ‚s hĄvogatja a megfelel“ rendez“ elj r sokat. - TombKiir , amely az r tartalm t oszloposan megjelenĄti a k‚perny“n. } Procedure OraIndul; Var o,p,mp,szmp: Word; ol: LongInt; Begin GetTime(o,p,mp,szmp); ol:=o; {konverzi˘ LongInt-t‚} Kezdet:=szmp+100*(mp+60*(p+60*ol{konverzi˘ LongInt-t‚})) End; {OraIndul} Procedure OraAll; Var o,p,mp,szmp: Word; ol: LongInt; Begin GetTime(o,p,mp,szmp); ol:=o; {konverzi˘ LongInt-t‚} Veg:=szmp+100*(mp+60*(p+60*ol{konverzi˘ LongInt-t‚})); ElteltIdo:=Veg-Kezdet End; {OraAll} Procedure Kiirasok(cim: String); Var i: Integer; Begin ClrScr; TombKiir(cim); Writeln; Writeln('Eltelt id“:',ElteltIdo, ' sz zadm sodperc.') End; {Kiirasok} Procedure csere(var a,b:integer); var sv:integer; Begin sv:=a; a:=b; b:=sv; End; Procedure EgyszeruCseres; Begin OraIndul; For i:=1 to (Elemszam-1) do For j:=1 to (Elemszam-1) do If r[i]>r[j] then csere (r[i],r[j]); {itt van az r rendez‚se} OraAll; Kiirasok('Egyszer cser‚s'); r:=s; {Az eredeti ‚rt‚ket vissza llĄtja} End; {EgyszeruCseres} Procedure MinimumKivalasztasos; var minind:integer; Begin OraIndul; For i:=1 to (Elemszam-1) do Begin minind:=i; For j:=i+1 to Elemszam do Begin if r[j]=1) do begin cs:=0; For j:=1 to (i-1) do begin if (r[j] > r[j+1]) then csere(r[j],r[j+1]); cs:=1; end; i:=cs; end; {itt van az r rendez‚se} OraAll; Kiirasok('JavĄtott bubor‚k'); r:=s; {Az eredeti ‚rt‚ket vissza llĄtja} End; {JavitottBuborek} Procedure Beilleszteses; Begin OraIndul; For i:=2 to Elemszam do begin j:=i; While (j>1) and (r[j] < r[j-1]) do begin csere ((r[j]),(r[j-1])); j:=(j-1); end; end; {itt van az r rendez‚se} OraAll; Kiirasok('Beilleszt‚ses'); r:=s; {Az eredeti ‚rt‚ket vissza llĄtja} End; {Beilleszteses} Begin ClrScr; Randomize; {Mindig v‚letlenszer kezd“‚rt‚k} ElemSzam:=100; {Opcion lis m‚ret} Menuzes(FoMenu); End.