Răspuns :
Nu prea vad ca are vreo limita in timp, dar pentru orice eventualitate de ce sa nu folosim cautarea binara, daca totusi vectorii sint ordonati.
Iar pentru inca o efecienta maxima putem sa "jonglam" cu 2 vectori deodata.
#include <fstream>
#include <iostream>
#include <cmath>
using namespace std;
ifstream fin1("NR1.TXT");
ifstream fin2("NR2.TXT");
int cautare_binara(int a, int b, int v[], int k);
int v1[100],v2[100];
int main()
{
int n=0,m=0,x=0,y=0,i=0,j=0;
while(fin1 >> v1[x++])
n++;
while(fin2 >> v2[y++])
m++;
x=v1[i++];
y=v2[j++];
while(true)
{
while((x<=y or j>m) and i<=n)
{
if(x%5==0 and !cautare_binara(0,m,v2,x))
cout << x << " ";
x=v1[i++];
}
while((y<=x or i>n) and j<=m)
{
if(y%5==0 and !cautare_binara(0,n,v1,y))
cout << y << " ";
y=v2[j++];
}
if(i>n and j>m)
return 0;
}
return 0;
}
int cautare_binara(int a, int b, int v[], int k)
{
int m;
while(a<=b)
{
m=floor((a+b)/2);
if(k==v[m])
return 1;
else
{
if(k>v[m])
a=m+1;
else
b=m-1;
}
}
return 0;
}
Iar pentru inca o efecienta maxima putem sa "jonglam" cu 2 vectori deodata.
#include <fstream>
#include <iostream>
#include <cmath>
using namespace std;
ifstream fin1("NR1.TXT");
ifstream fin2("NR2.TXT");
int cautare_binara(int a, int b, int v[], int k);
int v1[100],v2[100];
int main()
{
int n=0,m=0,x=0,y=0,i=0,j=0;
while(fin1 >> v1[x++])
n++;
while(fin2 >> v2[y++])
m++;
x=v1[i++];
y=v2[j++];
while(true)
{
while((x<=y or j>m) and i<=n)
{
if(x%5==0 and !cautare_binara(0,m,v2,x))
cout << x << " ";
x=v1[i++];
}
while((y<=x or i>n) and j<=m)
{
if(y%5==0 and !cautare_binara(0,n,v1,y))
cout << y << " ";
y=v2[j++];
}
if(i>n and j>m)
return 0;
}
return 0;
}
int cautare_binara(int a, int b, int v[], int k)
{
int m;
while(a<=b)
{
m=floor((a+b)/2);
if(k==v[m])
return 1;
else
{
if(k>v[m])
a=m+1;
else
b=m-1;
}
}
return 0;
}
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile disponibile v-au fost utile și inspiraționale. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, suntem aici pentru a vă ajuta. Ne face plăcere să vă revedem și vă invităm să adăugați site-ul nostru la favorite pentru acces rapid!