Referate Meniu
Astronomie
Biologie
Chimie
Desen
Diverse
Drept
Economie
Engleza
Filozofie
Fizica
Franceza
Geografie
Germana
Informatica
Istorie
Italiana
Marketing
Matematica
Medicina
Muzica
Psihologie
Romana
Romana1
Spaniola


 


referat, proiect, rezumat, caracterizare, lucrare de nota 10 despre:

Sortare prin interclasare mergesort rezolvarea problemei si algortmul

Sortare prin interclasare(mergesort)

Tabloul unidimensional V se completeaza cu n numere reale. Sa se ordoneze crescator folosind sortare prin interclasare.

Sortarea prin interclasare se bazeaza pe urmatoarea logica :

vectorul V se imparte ,prin injumatatiri succesive ,in vectori din ce in ce mai mici ;cand se ating vectorii de maxim doua elemente ,fiecare dintre acestia se ordoneaza printr-o simpla comparare a elementelor ;cate doi astfel de mini- vectori ordonati se interclaseaza succesiv pana se ajunge iar la vectorul V. 39734mmu66nko3q

 

program mergesort;

type vector=array[1..50] of real ;

var v:vector ;n,i:word;

procedure schimba(li,ls:word;var a:vector);

var man:real;

begin

if a[li]>a[ls] then begin

man:=a[li];

a[li]:=a[ls];

a[ls]:=man; mk734m9366nkko

end;

end;

procedure interclas(li,m,ls:word;var a:vector);

var b:vector:i,k,p,j:word;

begin

i:=li; j:=m+1; k:=0;

while (i<=m)and(j<=ls) do

begin

inc(k);

if a[i] <a[j] then begin

b[k]:=a[i];

inc(i);

end

else begin

b[k]:=a[j];

inc(j);

end;

end;

if i<=m then for p:=i to m do begin1

inc(k);b[k]:=a[p];

end;

if j<=ls then for p:=j to ls do begin

inc(k) ;b[k]:=a[p];

 

end;

 

k:=0;

for p:=li to ls do begin

inc(k);

a[p]:=b[k];

end;

end;

procedure divi(li,ls:word; var a:vector);

var m:word;

begin

if (ls-li)<=1 then schimba(li,ls,a);

else begin

m:=(li+ls)div 2;

divi(li,m,a);

divi(m+1,ls,a);

interclas(li,m,ls,a);

end;

end;

begin

write(‘cate elemente are vectorul?=’);readln(n);

for i:=1 to n do

begin

write(‘tastati elementul’,i,’=’);

readln(v[i]);

end;

divi(1,n,v);

writeln(‘vectorul sortat este:’);

for i:=1 to n do writeln(v[i]);

end.

OBSERVATII

4mecanismul general de tip Divide et Impera se gaseste implementat in procedura “divi” ;

4o astfel de abordare a problemei sortarii unii vector conduce la economie de timp de calcul ,deoarece operatia de interclasare a doi vectori deja ordonati este foarte rapida ,iar ordonarea independenta celor doua jumatati(mini- vectori) consuma in total aproximativ a doua parte din timpul care ar fi necesar ordonarii vectorului luat ca intreg .