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ăspunsuri la întrebare
Răspuns de
0
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.
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.
Vendetta47:
Explica mai clar te rog. De ce ar fi analizat cu 0? De unde acel 0?
Alte întrebări interesante
Matematică,
8 ani în urmă
Religie,
8 ani în urmă
Matematică,
8 ani în urmă
Germana,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Engleza,
9 ani în urmă