Felhasználói eszközök

Eszközök a webhelyen


inf-prog-fszi:koezvetlen_kivalasztasos_rendezes

Közvetlen kiválasztásos rendezés

Módszer lényege: Rendezendő számok az A vektor elemei. Első menetben az A(1)-et összehasonlítjuk az összes elemmel és ha kisebbet találunk nála, akkor felcseréljük. Így az első menet végére a legkisebb elem lesz az első helyen. Ezután ezt ismételjük az A(2)-es elemmel, stb. N-1 menet után rendezett lesz a sorozat.

kivalasztasos.txt
Eljárás:
	Ciklus I=1-től N-1-ig
		Ciklus J=I+1-től N-ig
			Ha A(J) < A(I) akkor C:=A(J)
			A(J):=A(I)
			A(I):=C
		Ciklus vége
	Ciklus vége
Eljárás vége.

DEMO

Hatékonysági mutatók
Tárigény: N+1
Összehasonlítások száma: N*(N-1)/2
Mozgatások száma: 0-tól 3*N*(N-1)/2-ig lehetséges
Végrehajtási idő: 2980 s (N=500)

Pascal forráskód

rendezes_kivalasztassal.pas
program rendezes_kivalasztassal;
const n = 10;
var a: array [1..n] of integer;
    i, j, c: integer;
begin
  randomize;
  //A tömb elkészítése
  for i:=1 to n do
  begin
    a[i]:=random(55);
    write(a[i], ' ');
  end;
  Writeln;
  //Tömb rendezése közvetlen kiválasztással
  for i:=1 to n-1 do
    for j:=i+1 to n do
      if a[j]<a[i] then begin
        c:=a[j];
        a[j]:=a[i];
        a[i]:=c;
      end;
 
  writeln('A rendezett tomb elemei: ');
  for i:=1 to n do
    write(a[i], ' ');
  readln;
end.

A <rendezes_kivalasztassal.pas> forráskódjának futtatása online

Órai gyakorlat

kivalasztasos_rendezes.pas
program kivalasztasos_rendezes;
const n=8;
var i,j, cs : integer;
    a: array [1..n] of integer;
begin
  writeln('Kerem a tomb elemeit: ');
  for i:=1 to n do
  begin
    write('a[',i,'] = '); readln(a[i]);
  end;
  for i:=1 to n-1 do
    for j:=i+1 to n do
      if a[j]<a[i] then
      begin
        cs:=a[j];
        a[j]:=a[i];
        a[i]:=cs;
      end;
  write('A rendezett tomb elemei: ');
  for i:=1 to n do
    write(a[i]:3);
  readln;
end.
inf-prog-fszi/koezvetlen_kivalasztasos_rendezes.txt · Utolsó módosítás: 2017/06/21 09:24 szerkesztette: beistvan