Documente Academic
Documente Profesional
Documente Cultură
Fiind dați doi vectori sortați, prin interclasarea lor se înțelege construirea unui al treilea
vector sortat care să conțină toate elementele acestora. Printre cele mai importante aplicații
ale interclasării se numără reuniunea și intersecția a două mulțimi, dar mai ales sortarea prin
interclasare.
b=⟨2,3,5,6,7⟩
c=⟨1,2,3,4,5,5,5,6,7,7,9⟩
Soluții naive
Printre primele soluții care ne vin în minte se regăsesc:
a) Copiem tot vectorul a în c, iar apoi luăm pe rând elementele lui b, și le
inserăm pe pozițiile lor corespunzătoare în c. Mai precis, parcurgem de la
dreapta la stânga vectorul c, cât timp elementele sale sunt mai mici decât
elementul curent din b, timp în care le mutăm cu o poziție la dreapta, pentru
a-i face loc elementului nou.
b) Concatenăm cei doi vectori în c (introducem în c elementele lui a, iar în
continuare elementele lui b), și apoi sortăm vectorul c
Totuși, soluțiile de mai sus nu prea se folosesc de faptul că vectorii a și b sunt deja
sortați.
1. Declaram un vector c, care este inițial fără nici un element (k = 0), k reprezintă
numărul de elemente din vectorul c (la început în vectorul c nu avem nici un
element). Inițializăm variabilele i (cu care parcurg vectorul a) și j (cu care parcurg
vectorul b) cu 1 pentru că plecăm de pe pria poziție în ambii vectori
b. Incrementăm k
int a[1001],b[1001],c[2001],i,j,k,n,m;
//citirea datelor
i=1;j=1;k=0;
while(i<=n && j<=m)
if (a[i]<=b[j]){ k++; c[k]=a[i]; i++;}
else ){ k++; c[k]=b[j]; j++;}
while (i<=n){ c[k]=a[i]; i++;k++;}
while (j<=m){ c[k]=b[j]; j++;k++}
//afișarea vectorului rezultat c
https://www.pbinfo.ro/articole/5588/interclasarea-tablourilor