👤

La metoda bulelor, mai exact la cel de-al doilea for, de ce este i<=n-1(i<n) ci nu i<=n? De ce nu se parcurg toate elementele sirului, ci se parcurge doar pana la penultimul?
#include

using namespace std;

int main()
{
int n, v[100], i , aux, sortat;
cin >> n;
for ( i=1; i<=n; i++)
cin >> v[i];
do
{
sortat=0;
for( i=1; i<=n-1; i++)
{
if( v[i]>v[i+1] )
{
aux=v[i];
v[i]=v[i+1];
v[i+1]=aux;
sortat=1;
}
}
}
while( sortat==1 );
for ( i=1; i<=n; i++ )
cout << v[i]<<" ";
return 0;
}



Răspuns :

Ca v[i+1], din if( v[i]>v[i+1] ), sa existe si sa fie in limitele vectorului, altfel, ar fi analizat v[i] cu 0

Ar fi analizat cu 0, deoarece v[i+1], adica v[n+1] nu are o valuare atribuita. Daca ai scoate acel -1, vectorul final nu ar mai include ultima valoare si pe prima pozitie ar fi 0

Exemplu:

pentru datele de intrare 
4 367 278 27 12, cu n-1, programul le ordoneaza cum trebuie. Cu n simplu, datele de iesire sunt: 0 12 27 278.

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!


Ez Studiers: Alte intrebari