Sunteți pe pagina 1din 2

INTERCLASAREA A 2 VECTORI

Exemplu
N= 5
A= (3, 6, 9, 12, 24)
M= 7
B=(1, 2, 5, 7, 10, 15, 18)

in urma algoritmului de interclasare va rezulta vectorul c cu k


componente:
K=12
C= (1, 2, 3, 5, 6, 7, 9, 10, 12, 15, 18, 24)

Ideea de lucru:
Ne pozitionam cu i pe primul element din a iar cu j pe primul element din b.
Cat timp mai avem elemente in a si in b comparam elementul curent a[i] dina cu
elementul curent b[j] din b, iar pe acela care este mai mic il adaugam in vectorul
c.
In momentul in care unul dintre cei doi vectori s-a epuizat, copiem in vectorul c
elementele ramase din celalalt vector.

Algoritmul pentru interclasarea a 2 vectori


Program interclasare;
var a,b,c: array[1..100] of integer;
n,m,k,I,j: integer;
begin write(n= ); read(n);
for i:=1 to n do read(a[i]);
write(m= ); read(m);
for i:=1 to m do read(b[i]);
k:=0; i:=1; j:=1;
while (i<=n) and (b<=m) do
if a[i]<b[j] then begin k:=k+1;
c[k]:=a[i];
i:=i+1;
end
else begin k:=k+1;
c[k]:=b[j];
j:=j+1;
end;
while i<=n do begin k:=k+1; c[k]:=a[i]; i:=i+1; end;
while j<=m do begin k:=k+1; c[k]:=b[j]; j:=j+1; end;
writeln(Vectorul rezultat este: );

for i:=1 to k do write(c[i], );


end.

S-ar putea să vă placă și