Sunteți pe pagina 1din 3

1.

Sortare prin selectie directa

for(int i = 0; i < N - 1; i++)


{
for(int j = i + 1; j < N; j++)
{
if(Vector[i] > Vector[j])
{
int aux = Vector[i];
Vector[i] = Vector[j];
Vector[j] = aux;
}
}
}
2.Interclasarea a doi vectori

-vectori ce au elementele stocate in ordine crescatoare /descrescatoare. Scopul acestui algoritm este sa creeze un
al treilea vector ce contine elementele din cei doi vectori sortate crescator/descrescator.

1. Declaram un vector C cu un contor k = 0


2. Cat timp se afla elemente in ambii vectori (i <= n si j <= m):

o Comparam elementul Ai cu Bj
o Incrementam k
o Adaugam in C, pe pozitia k, elementul cel mai mic intre Ai cu Bj
o Incrementam indicele corespunzator vectorului din care am facut adaugarea (incrementam i daca
elementul Ai a fost mai mic, si in caz contrar, incrementam j)

3. Verificam in care dintre cei doi vectori au mai ramas elemente.

o Daca i <= n atunci inseamna ca mai avem elemente in vectorul A, pe care le luam in ordine si le
adaugam la finalul vectorului C.
o Daca j <= m atunci inseamna ca mai avem elemente in vectorul B, pe care le luam in ordine si le
adaugam la finalul vectorului C.

int A[100], B[100], C[200];


int n, m, k = 0;

cout << "Introduceti numarul de elemente corespunzator vectorului A: "; cin >>
n;
cout << "Introduceti elementele vectorului A: ";
for(int i = 0; i < n; i++)
cin >> A[i];

cout << "Introduceti numarul de elemente corespunzator vectorului B: "; cin >>
m;
cout << "Introduceti elementele vectorului B: ";
for(int i = 0; i < m; i++)
cin >> B[i];

int i = 0, j = 0;
while(i < n && j < m)
{
if(A[i] < B[j])
{
C[k] = A[i];
k++;
i++;
}
else
{
C[k] = B[j];
k++;
j++;
}
}

if(i <= n)
{
for(int p = i; p < n; p++)
{
C[k] = A[p];
k++;
}
}
if(j <= m)
{
for(int p = j; p < m; p++)
{
C[k] = B[p];
k++;
}
}

for(int p = 0; p < k; p++)


cout << C[p] << " ";
3.Cautare binara - este un algoritm folosit pentru a gasi un element intr-o lista ordonata (crescatoare
sau descrescatoare)

Se foloses ctrei variabile, pe care eu le voi denumii: s, d si m.

 s – inceputul intervalului in care cautam


 m – mijlocul intervalului
 d – sfarsitul intervalului in care cautam

Algoritmul verifica de mai multe ori daca m este egal cu valoarea elementului cautat de noi.

In cazul in care V[m] == x (unde x – este elementul cautat ) – algoritmul a gasit elementul cautat.

 In caz contrar:
o daca x este mai mic decat V[m], d va devenii m+1
o daca x este mai mare decat V[m], s va devenii m-1

Algoritmul se repeta atata timp cat s<= d.

int Sol = -1, s = 0, d = N;


while(s <= d)
{
int m = (s+d) / 2;
if(V[m] == x)
{
Sol = m;
break;
}
if(V[m] > x)
d = m - 1;
if(V[m] < x)
s = m + 1; }

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