Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

Fusione: V1 e V2 in V3

Precedente
SUPERIORE
Successiva

A partire da due sequenze ordinate, V1 e V2, si vuole realizzare una terza sequenza ordinata V3.

Procedure MERGE(     V1: Vettore;     L1: Integer;
                     V2: Vettore;     L2: Integer;
                 var V3: Vettore; var L3: Integer);
Var
   I, J, K: Integer;
Begin
   I:=1;
   J:=1;
   K:=1;
   while(I <= L1) And (J <= L2) do
      begin
         if(V1[I] <= V2[J]) then
            begin
               V3[K]:=V1[I];
               Inc(I);
            end
         else
            begin
               V3[K]:=V2[J];
               Inc(J);
            end;
         Inc(K);
      end;
   while(I <= L1) do
      begin
         V3[K]:=V1[I];
         Inc(I);
         Inc(K);
      end;
   while(J <= L2) do
      begin
         V3[K]:=V2[J];
         Inc(J);
         Inc(K);
      end;
   L3:=K-1;
End;

Esempio

V1V2V3
1, 2, 4, 5, 7, 102, 3, 4, 6
2, 4, 5, 7, 102, 3, 4, 61
4, 5, 7, 102, 3, 4, 61, 2
4, 5, 7, 103, 4, 61, 2, 2
4, 5, 7, 104, 61, 2, 2, 3
5, 7, 104, 61, 2, 2, 3, 4
5, 7, 1061, 2, 2, 3, 4, 4
7, 1061, 2, 2, 3, 4, 4, 5
7, 101, 2, 2, 3, 4, 4, 5, 6
101, 2, 2, 3, 4, 4, 5, 6, 7
1, 2, 2, 3, 4, 4, 5, 6, 7, 10

Fusione: V1 e V2 in V3 - ApPuNtIdIuNiNfOrMaTiCo

Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

Precedente
SUPERIORE
Successiva