====== Rendezés minimum- (maximum-) kiválasztással ======
**Módszer lényege**: Felesleges cserék kiküszöbölése érdekében két segédváltozót vezetünk be (legkisebb elem értékének és indexének).
Eljárás:
Ciklus I = 1-től N - 1-ig
INDEX := I
ÉRTÉK := A(I)
Ciklus J = I + 1-től N-ig
Ha A(J) < ÉRTÉK akkor ÉRTÉK := A(J)
INDEX := J
Ciklus vége
A(INDEX) := A(I)
A(I) := ÉRTÉK
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**: 3*(N-1)-től 3*(N-1)+(N*N/4)-ig lehetséges \\
**Végrehajtási idő**: 1650 s (N=500)
Pascal forráskód
Rendezés minimum-kiválasztással.
program rendezes_minimum_kivalasztassal;
const n = 10;
var a: array [1..n] of integer;
i, j, min, ind: 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 minimum-kiválasztással
for i:=1 to n-1 do
begin
ind:=i;
min:=a[i];
for j:=i+1 to n do
if a[j]
[[https://ideone.com/rQeTyn | A forráskódjának futtatása online ]]
Órai gyakorlat
program minimum_kereseses_rendezes;
const n=8;
var i,j, index, ertek : 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
begin
index:=i;
ertek:=a[i];
for j:=i+1 to n do
if a[j]