venerdì 7 novembre 2014

Fusione e Bilanciamento

Siano date due strutture dati, S1 e S2, ordinate entrambe secondo la stessa chiave e nello stesso senso. Un algoritmo che date in input S1 e S2, produce in output una terza struttura S3 derivante dalla unione delle due in input è detto di Fusione.
Facendo una analogia con la teoria degli insiemi, S3 può essere visto come l'insieme Unione di S1 e S2.

Ad esempio, siano:

  • S1 = {1,3,4,5,7,9}
  • S2 = {2,4,6,7,8,10}

Tramite un algoritmo di fusione possiamo ottenere:

  • S3 = {1,2,3,4,4,5,6,7,7,8,9,10}


A differenza della Fusione, il Bilanciamento, pur essendo del tutto simile, produce in genere una struttura identica ad una delle strutture in input, detta Guida, ma arricchita delle informazioni dell'altra struttura sugli elementi che si "bilanciano". 
Siano ad esempio, S1 una struttura contenente una lista ordinata di Userid e S2 una struttura contenente una anagrafica completa per Userid. Si supponga di voler associare agli elementi della lista S1 alcune informazioni prelevate da S2, ad esempio il nome e cognome.

Quindi avremo, ad esempio :
  • S1 = {U4,U5,U8,U10,U25}
  • S2 = {(U1,n1,c1),(U2,n2,c2),(U3,n3,c3),(U4,n4,c4),(U5,n5,u5),...,(U8,n8,c8),...,(U10,n10,c10),...,(U25,n25,c25),...,(U100,n100,u100)}

Dove :

  •  "Un" (n=1..100) sono le Userid;
  •  "nn" e "cn" (n=1..100) sono i nomi e cognomi associati alle userid
Il programma di bilanciamento "guidato" da S1, cercherà in S2 le informazioni mancanti per comporre in out una struttura S3 del tipo:
  • S3 = {(U4,n4,c4),(U5,n5,u5),(U8,n8,c8),(U10,n10,c10),(U25,n25,c25)}



Nessun commento:

Posta un commento