Sunteți pe pagina 1din 2

Profesor Darie Simona

Sortare prin inserție

PRINCIPIU

Ex. ne propunem ordonare crescătoare

x= 17 13 14 5 7 25 10

1 2 3 4 5 6 7
Se inserează x[2] în secvența din stânga sa, astfel încât aceasta să fie ordonată ➔

x= 13 17 14 5 7 25 10

1 2 3 4 5 6 7
Se inserează x[3] în secvența din stânga sa, astfel încât aceasta să fie ordonată ➔

x= 13 14 17 5 7 25 10

1 2 3 4 5 6 7
Se inserează x[4] în secvența din stânga sa, astfel încât aceasta să fie ordonată ➔

x= 5 13 14 17 7 25 10

1 2 3 4 5 6 7
Se inserează x[5] în secvența din stânga sa, astfel încât aceasta să fie ordonată ➔

x= 5 7 13 14 17 25 10

1 2 3 4 5 6 7
Se inserează x[6] în secvența din stânga sa, astfel încât aceasta să fie ordonată ➔

x= 5 7 13 14 17 25 10

1 2 3 4 5 6 7
Se inserează x[7] în secvența din stânga sa, astfel încât aceasta să fie ordonată ➔

x= 5 7 10 13 14 17 25

1 2 3 4 5 6 7

Pagină 1 din 2
Profesor Darie Simona
Implementare C++

Varianta 1
for(i=2;i<=n;i++) {
aux=x[i];
for(j=i-1; j>=1; j--)
// orice element care este mai mare decât x[i] se deplasează spre dreapta cu o poziție
if (x[j] > aux) x[j+1]=x[j];
else break;
x[j+1]=aux;
}

Varianta 2
for(i=2;i<=n;i++)
for(j=i; j>1; j--)
// orice element mai mic decât cel aflat în dreapta sa, se interschimbă cu acesta
if (x[j] < x[j-1]) aux=x[j], x[j]=x[j-1], x[j-1]=aux;
else break;

Pagină 2 din 2

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