construirea unui vector din alt vector. Inversarea unui vector in alt vector.

Inversarea

Să zicem că șirul nostru are lungimea n. Atunci, pentru a inversa vectorul, trebuie ca:

  • elementele a[1] și a[n] să se interschimbe;
  • elementele a[2] și a[n - 1] să se interschimbe;
  • elementele a[3] și a[n - 2] să se interschimbe;


  • Algoritmul de inversare a unui tablou unidimensional

    Vom proceda astfel: ne creăm doi indici, i și j, inițial egali cu 1, respectiv cu n. La fiecare pas, interschimbăm elementele a[i] și a[j], incrementăm i (i++) și decrementăm j (j--). Astfel, valorile lui i și j vor fi exact cele de mai sus (1, n; 2, n - 1; 3, n - 2; …). Ne oprim atunci când i ≥ j, adică la jumătatea șirului (ca să nu interschimbăm de două ori elementele).
    i = 1;
    j = n;
    while(i <= j)
    {
    //Interschimbăm a[i] și a[j]
    aux = a[i];
    a[i] = a[j];
    a[j] = aux; //Trecem la următoarele elemente: a[i + 1] și a[j - 1]
    i++;
    j--;
    }

Construirea unui vector

v[0]=1;
//citesc a doua valoarea din vector
cin>>v[1];
//inițializez poziția din vector cu 2
i=2;
while(i<2*n-1){
//citesc valoarea de pe poziția i+1
cin>>v[i+1];
//calculez valoarea de pe poziția i
după regula dată
v[i]=v[i-1]+v[i+1];
//incrementez poziția cu 2
i=i+2;
}
//afișez vectorul construit
cout<<"Vectorul construit este: ";
for(i=0;i<=2*n-1;i++)cout<<v[i]<<" ";

Creați un site gratuit! Acest site a fost realizat cu Webnode. Creați-vă propriul site gratuit chiar azi! Începeți