2014/15 – Fase scolastica -10

Siano A e B due insiemi di uguale cardinalità N (cioè con uguale numero di elementi) contenenti ciascuno N numeri interi diversi tra loro.
I numeri dei due insiemi A e B vengono memorizzati, ordinati per valori crescenti, nei due vettori v e w.

Si dica che insieme calcola nel vettore z il seguente codice:

Var
   v, w   : Array[1..N] of Integer;
   z      : Array[1..2*N] of Integer;
   i, j, k: Integer;

While(i <= N) And (j <= N) Do
   Begin
      If(v[i] = w[j]) Then
         Begin
            i:=i+1;
            j:=j+1
         End
      Else If(v[i] < w[j]) Then
         Begin
            z[k]:=v[i];
            k:=k+1;
            i:=i+1
         End
      Else
         Begin
            z[k]:=w[j];
            k:=k+1;
            j:=j+1
         End;
   End;
While(i <= N) Do
   Begin
      z[k]:=v[i];
      k:=k+1;
      i:=i+1
   End;
While(j <= N) Do
   Begin
      z[k]:=w[j];
      k:=k+1;
      j:=j+1
   End;

8