0% found this document useful (0 votes)
13 views6 pages

Algoritmi

Uploaded by

Bogdan Cioaca
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views6 pages

Algoritmi

Uploaded by

Bogdan Cioaca
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 6

Algoritmi C++

Vectori
 Parcurgere:
-de la stanga la dreapta:

for(i=1; i<=n; i++) prelucrare v[i]


-de la dreapta la stanga:

for(i=n; i>=1; i--) prelucrare v[i]


 Primii 2 vecini:
for(i=1; i<=n-1; i++) prelucrare (v[i]; v[i+1]) sau for(i=2; i<=n; i++) prelucrare
(v[i-1]; v[i])
 Triplete de vecini
for(i=1; i<=n-2; i++) prelucrare (v[i]; v[i+1]; v[i+2]) sau
for(i=2; i<=n-1; i++) prelucrare (v[i-1]; v[i]; v[i+1]) sau
for(i=2; i<=n; i++) prelucrare (v[i-2]; v[i-1]; v[1])
 Perechi distincte:
for(i=1; i<=n-1; i++)
for(j=i+1; j<=n; j++) prelucrare (v[i]; v[j])
 Sortarea vectorilor:
Met.1:

-Bubble Sort:
do { ok=0;
for(i=1;i<=n;i++)
if(v[i]>v[i+1])
{ aux=v[i];
v[i]=v[i+1];
v[i+1]=aux;
ok=1;
}
} while(ok==1)

Met2:

-Sortarea prin selectia directa:

for(i=1; i<=n; i++)


for(j=i+1; j<=n; j++)
if( v[i]>v[j]) { aux=v[i];
v[i]=v[j];
v[j]=aux;
}
 Inserarea unui element in vector:
for(i=n; i>=k; i--) v[i+1]=v[i];
v[k]=x;
n++;
 Ștergerea unui element din vector:
for(i=k+1; i<=n; i++) v[i-1]=v[i];
n--;
 Cautarea binara:
int v[], x,i,n,ls,ld,mij,ok;
cin>>n;
for(i=1; i<=n; i++) cin>> v[i];
cin>>x;
ls=1; ld=n; ok=0;
while(ls<ld && ok==0)
{ mij=(ls+ld)/2;
if(x==v[mij]) ok=1;
else if(x<v[mij])
ld=mij-1;
ls=mij+1;
if(ok==1)
cout<<x<<pe pozitia<<mij;
else cout<<x<<nu exista;
return 0;
 Interclasarea vectorilor:
#include <iostream>
using namespace std;
int a[101], b[101], c[201], n, m, k;
int main()
{ cin >> n;
for(int i = 1; i <= n; i++)
cin >> a[i];
cin >> m;
for(int i = 1; i <= m; i++)
cin >> b[i];
int i = 1, j = 1;
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) {
k++;
c[k] = a[i];
i++;
}

while(j <= m) {
k++;
c[k] = a[j];
j++;
}
for(int i = 1; i <= k; i++)
cout << c[i] << " ";
return 0;
}

 Fisiere text:
-Citire: f>>v1>>v2...
-Citire a tuturor valorilor dintr-un sir:
while{f>>x) prelucrare x;
Afisare: f<<;

Tablouri bidimensionale (matrice)


 Linie cu linie: for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
prelucrare a[i][j];
 Afisare: for(i=1; i<=n; i++)
{ for(j=1; j<=n; j++)
cout<<a[i][j]<<’’ ’’;
cout<<endl;
 Coloana cu coloana:

for(j=1; j<=m; j++)


for(i=1; i<=n; i++) prel. a[i][j];
 Diagonala principala:

for(i=1; 1<=n; i++) a[i][j];


sau
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
if(i==j) a[i][j];
 Deasupra diagonala principala:

for(i=1; i<=n-1; i++)


for(j=i+1; j<=n; j++) a[i][j];
sau
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
if(j>i) a[i][j];
 Sub diagonala principala:

for(i=2; i<=n; i++)


for(j=1; j<=n-1; j++)
a[i][j];
sau
for(i=1; i<=n; i++)
if(j<i) a[i][j];
 Diagonala secundara:
for(i=1; i<=n; i++) a[i][n-i+1]; sau
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
if(j==n-i+1) a[i][j];
 Deasupra diagonala secundara:

for(i=1; i<=n-1; i++)


for(j=1; j<=n-1; j++) a[i][j];
sau
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
if(j<n-i+1) a[i][j];
 Sub diagonala secundara:

for(i=2; i<=n; i++)


for(j=n-i+2; i<-n; j++) a[i][j];
sau
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
if(j>n-i+2) a[i][j];
 Simetricul lui a[i][j] fata de diagonala:

-diag. principala: a[j][i];


-diag. secundara: a[n-j+1][n-i+1];

You might also like