/* Sortarea prin insertie directa vectorul initial cu elemente distincte v; fiecare element este inserat in locul corespunzator, in raport cu elementele sortare anterior - se considera v[1]<=v[2]<=...v[j-1] - se compara v[j] cu v[j-1], v[j-2],... pana cand se determina ca v[j] trebuie inserat intre v[i] si v[i+1] - apoi se deplaseaza secventa v[i+1],...,v[j-1] cu o pozitie si se va introduce noul element in pozitia i+1 */ #include #include #define max 50 void main(void){ clrscr(); int i,j,n,x; int v[max]; printf("nr elemente=");scanf("%d",&n); for(i=1;i<=n;i++) { printf("v[%d]=",i);scanf("%d",&v[i]); } for(j=2;j<=n;j++) { x=v[j]; i=j-1; while (i>0&&v[i]>x) { v[i+1]=v[i]; i--; } v[i+1]=x; } for(i=1;i<=n;i++) printf("%d\t",v[i]); printf("\n"); getch(); }