Sortarea prin inserție inserează un element din vector exact acolo unde e nevoie de el.
Sortarea prin inserție (Insertion Sort) se bazează pe următoarea idee: fie un vector X[] cu n elemente; dacă secvența cu indici 0 , 1 , …, i-1 este ordonată, atunci putem insera elementul X[i] în această secvență astfel încât să fie ordonată secvența cu indici 0 , 1 , …, i-1 , i .
//M4 L3 sortare prin insertie
#include <iostream>
using namespace std;
int main()
{
int v[100],n;
cout << "Dati nr de elemente ale vectorului:";
cin >> n;
//citire de la tastatura
for(int i=0; i<n; i++){
cout << "v[" << i << "]= ";
cin >> v[i];
}
//afisare pe ecran
for(int i=0; i<n; i++){
cout << v[i] << " ";
}
cout << '\n';
//sortare prin insertie
for(int i = 1 ; i < n ; i ++)
{
int p = i;
while(p > 0 && v[p] < v[p-1])
{
int aux = v[p];
v[p] = v[p-1];
v[p-1] = aux;
p --;
}
}
//afisare vector
for(int i=0; i<n; i++){
cout << v[i] << " ";
}
return 0;
}
Temă:
Să se modifice programul de mai sus astfel încât vectorul sortat să se afișeze într-un fișier de ieșire (ex. date.out).
