Sunteți pe pagina 1din 3

1.

Sortarea prin metoda bulelor:


#include<stdio.h>
#include<conio.h>
#include<iostream.h>
void main()
{ struct student{char nume[10],
prenume[10];int nota;};
student a[20],c;
int i,l,v=0,n,k;
clrscr();
printf("introduceti nr de studenti:");
scanf("%d",&n);
for(i=0;i<n;i++) {
printf("\nintroduceti numele studentului
%i ",i+1); scanf("%s",a[i].nume);
printf("\nintroduceti prnumele
studentului %i ",i+1);
scanf("%s",a[i].prenume);
printf("\nintroduceti nota studentului %i
",i+1); cin>>a[i].nota;
};
printf("\nStudentii introdusi sunt\n: ");
for(i=0;i<n;i++) {
printf("\n\t%d %s\t",i+1,a[i].nume);
printf("%s\t",a[i].prenume);
printf("%d",a[i].nota);

};
while (v==0){ i=0;l=n; v=1;
while(i<l-1)
{if(a[i].nota>a[i+1].nota)
{c=a[i];a[i]=a[i+1];
a[i+1]=c;k=i;
v=0;}i=i+1;
}} ;
printf("\nStudentii sortati dupa nota
sunt:\n ");
for(i=0;i<n;i++) {
printf("\n\t%d %s\t",i+1,a[i].nume);
printf("%s\t",a[i].prenume);
printf("%d",a[i].nota);
};
getch();
}

2.Sortare prin metoda inseriei:


#include<stdio.h>
#include<conio.h>
#include<iostream.h>
void main()
{ struct student{char nume[10],
prenume[10];int nota;};
student a[20],x;
int i,j,s,n,d,m;
clrscr();
printf("introduceti nr de studenti:");
scanf("%d",&n);
for(i=0;i<n;i++) {
printf("\nintroduceti numele studentului %i
",i+1); scanf("%s",a[i].nume);
printf("\nintroduceti prnumele studentului %i
",i+1); scanf("%s",a[i].prenume);
printf("\nintroduceti nota studentului %i
",i+1); cin>>a[i].nota;
};
printf("\nStudentii introdusi sunt\n: ");
for(i=0;i<n;i++) {
printf("\n\t%d %s\t",i+1,a[i].nume);
printf("%s\t",a[i].prenume);
printf("%d",a[i].nota);
};
i=1;

while (i<n){x=a[i];s=0;d=i-1;
while(s<=d){m=(s+d)/2;
if(a[m].nota>x.nota)d=m-1;
else s=m+1;
}
j=i-1;
while(j>=s){a[j+1]=a[j]; j=j-1;}
a[s]=x; i++;
};
printf("\nStudentii sortati dupa nota sunt\n:
");
for(i=0;i<n;i++) {
printf("\n\t%d %s\t",i+1,a[i].nume);
printf("%s\t",a[i].prenume);
printf("%d",a[i].nota);
};
getch();
}

3.Sortare prin metoda seleciei:

#include<stdio.h>
#include<conio.h>
#include<iostream.h>
void main()
{ struct student{char
nume[10],prenume[10];int nota;};
student A[20],min,C;
int i,j,k,l,n,V=0;
clrscr();
printf("Introduceti nr de studenti:");
scanf("%d",&n);
for(i=0;i<n;i++)
{ printf("Introduceti numele studentului
%i: ",i+1); scanf("%s",&A[i].nume);
printf("Introduceti prenumele
studentului %i: ",i+1);
scanf("%s",&A[i].prenume);
printf("Introduceti nota studentului %i:
",i+1); cin>>A[i].nota;
};
printf("Studentii introdusi sunt");
for(i=0;i<n;i++)
{ printf("\n\t%d %s\t",i+1,A[i].nume);
printf("%s\t",A[i].prenume);
printf("%d",A[i].nota);};

i=0;
while(i<n-1)
{min=A[i];
l=i;j=i+1;
while(j<n)
{if(min.nota>A[j].nota)
{min=A[j];
l=j;}
j=j+1;}
C=A[i]; A[i]=A[l]; A[l]=C; i=i+1;};
printf("\nStudentii sortati sunt");
for(i=0;i<n;i++)
{ printf("\n\t%d %s\t",i+1,A[i].nume);
printf("%s\t",A[i].prenume);
printf("%d",A[i].nota);};
getch();
}

4.Sortare prin metoda interclasrii:

#include<stdio.h>
#include<conio.h>
#include<iostream.h>
void main()
{ struct student{char
nume[10],prenume[10];int nota;};
student T1[100],T2[100],T3[100];
int i,j,k,n,m;
clrscr();
printf("Introduceti nr de studenti pentru
T1:");
scanf("%d",&n);
for(i=0;i<n;i++)
{ printf("Introduceti numele %i: ",i+1);
scanf("%s",T1[i].nume);
printf("Introduceti prenumele %i: ",i+1);
scanf("%s",T1[i].prenume);
printf("Introduceti nota %i: ",i+1);
cin>>T1[i].nota;
};
printf("Introduceti nr de studenti pentru
T2:");
scanf("%d",&m);
for(i=0;i<m;i++)
{ printf("Introduceti numele %i: ",i+1);
scanf("%s",T2[i].nume);
printf("Introduceti prenumele %i: ",i+1);
scanf("%s",T2[i].prenume);

printf("Introduceti nota %i: ",i+1);


cin>>T2[i].nota;
};
printf("Studentii pentru T1 introdusi sunt");
for(i=0;i<n;i++)
{printf("\n\t%d %s\t",i+1,T1[i].nume);
printf("%s\t",T1[i].prenume);
printf("%d",T1[i].nota);};
printf("\nStudentii pentru T2 introdusi
sunt");
for(i=0;i<m;i++)
{printf("\n\t%d %s\t",i+1,T2[i].nume);
printf("%s\t",T2[i].prenume);
printf("%d",T2[i].nota);};
i=0;j=0;k=0;
while((i<n)&&(j<m))
{if(T1[i].nota<T2[j].nota)
{T3[k]=T1[i];
k=k+1;
i=i+1;
}
else {T3[k]=T2[j];
k=k+1;
j=j+1;}}

while(i<n){ T3[k]=T1[i];
k=k+1;
i=i+1;}
while(j<m){ T3[k]=T2[j];
k=k+1;
j=j+1;};
printf("\nStudentii sortati sunt");
for(i=0;i<(n+m);i++)
{printf("\n\t%d %s\t",i+1,T3[i].nume);
printf("%s\t",T3[i].prenume);
printf("%d",T3[i].nota);};
getch();

5.Sortare prin metoda distribuirii:


#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <iostream.h>
void main ()
{clrscr();
int A[50],B[50];int C,i,j,n,n1=20,n2=40;
printf("Dati nr de elemente al tabloului:");
scanf("%d",&n);
printf("Introduceti cifrele\n");
for(i=0;i<n;i++)
scanf("%d",&A[i]);
printf("tabloul introdus este\n");
for(i=0;i<n;i++)
printf("%d ",A[i]);
i=n1;
while(i<=n2){B[i]=0;i=i+1;}
i=0;
while(i<=n){C=A[i];B[C]=C;
i=i+1;}
i=0;
j=n1;
while(j<=n2){if(B[j] == 0);
else
{A[i]=B[j];
i=i+1;}
j=j+1;}
printf("\nTabloul sortat este:\n");
for(i=0;i<n;i++)
printf("%d ",A[i]);
getch();}

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