Sunteți pe pagina 1din 6

Tablouri

unidimensionale
16 NOIEMBRIE 2019
PROF. GOREA-ZAMFIR CLAUDIU-CRISTIAN
INTERCLASAREA
Se aplică pe 2 vectori sortați.
Se obține un al treilea vector ordonat crescător.
Se poate folosi pentru a realiza REUNIUNEA, INTERSECȚIA, DIFERENȚA a două mulțimi(vectori)
https://www.pbinfo.ro/?pagina=probleme&id=2668
https://www.pbinfo.ro/?pagina=probleme&id=284
https://www.pbinfo.ro/?pagina=probleme&id=251
https://www.pbinfo.ro/?pagina=probleme&id=250
i=1; j=1;
while(i<=n and j<=m)
{
if(a[i]<b[j]) c[++k]=a[i++];
else
if(a[i]>b[j]) c[++k]=b[j++];
else
if(a[i]==b[j]) c[++k]=a[i++];
}
while(i<=n) c[++k]=a[i++];
while(j<=m) c[++k]=b[j++];
CĂUTAREA BINARĂ
Se caută într-un mod eficient, existența sau lipsa unei valori într-un vector ordonat.
https://www.pbinfo.ro/?pagina=probleme&id=2644
https://www.pbinfo.ro/?pagina=probleme&id=2276
http://campion.edu.ro/arhiva/index.php?page=problem&action=view&id=1468
http://campion.edu.ro/arhiva/index.php?page=problem&action=view&id=209
//vectori indexati de la 0, la n-1
cin>>x;
st=-1; dr=n; ///setam capetele in afara indicilor
while(dr-st>1)
{
mij=(st+dr)/2; ///elementul din mijloc
if (v[mij]<x) ///micsoram spatial de cautare
st=mij;
else
dr=mij;
}
if(dr==n or v[dr]!=x) cout<<"0 ";
else cout<<"1 ";
VECTORI DE FRECVENȚĂ
Folosind vectori pe domenii mici, vom putea stabili cu contor sau doar cu 0/1 apariția unor
valori.
Se folosește și la obținerea Ciurului lui Eratostene
https://www.pbinfo.ro/?pagina=probleme&id=2576
https://www.pbinfo.ro/?pagina=probleme&id=955
https://www.pbinfo.ro/?pagina=probleme&id=1374
https://www.pbinfo.ro/?pagina=probleme&id=1145
https://www.pbinfo.ro/?pagina=probleme&id=1306
https://www.pbinfo.ro/?pagina=probleme&id=2332

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