Documente Academic
Documente Profesional
Documente Cultură
Raport la
Chişinău, 2018
Sarcini de lucru: De elaborat programme in c care sa afiseze tabloul sortat ,
numarul de total de pasi si iteratii, timpul de executie prin algoritmii de sortare
studiati
Listingul programului:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <time.h>
float sec;
int nrp1,nrp2,nrp3,nrp4,nrp5;
int aux=*xp;
*xp=*yp;
*yp=aux;
int i,j;
int temp;
for(i=0;i<n-1;i++){
for(j=0;j<n-i-1;j++){
if(a[j]>a[j+1])
swap(&a[j], &a[j+1]);
nrp1++;}}
int i;
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
//Functia INSERTSORT
int i,aux,j;
for(i=1;i<n;i++)
aux=a[i];
j=i-1;
//Se muta elementele a[0..i-1] mai mari decat aux pe o pozitie inainte de la pozitia lor actuala
a[j+1] = a[j];
j=j-1;
}
a[j+1]=aux;
nrp2++;
int i;
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
int aux=*xp;
*xp=*yp;
*yp=aux;
int i, j, min;
for(i=0;i<n-1;i++)
{
//Gasim elementul minim in tabloul nesortat
min=i;
for(j=i+1;j<n;j++){
if(a[j]<a[min])
min=j;
swap(&a[min], &a[i]);
nrp3++;}}
int i;
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
int i,j,k,aux;
for(i=n/2;i>0;i=i/2)//for(i=n/2;i>0;i/=2)
for(j=i;j<n;j++)
{
for(k=j-i;k>=0;k=k-i)
if(a[k+i]>=a[k])
break;
else
aux=a[k];
a[k]=a[k+i];
a[k+i]=aux;
nrp4++; }
int i;
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
int i,j;
int t,x;
x=a[inf];
i=inf;
j=sup;
while(i<j)
i++;
while(a[j]>x)
j--;
if(i<j)
t=a[i];
a[i]=a[j];
a[j]=t;
if(j>inf)
a[inf]=a[j];
a[j]=x;
nrp5++;}
if(inf<j-1)QUICKSORT(a,inf,j-1);
if(j+1<sup)QUICKSORT(a,sup,j+1);
int i;
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
int main()
int k=0;
printf("\t\t\t'ALGORITMI DE SORTARE\n");
Menu:
Menu1:
printf("\t1.BUBBLE-SORT\n");
printf("\t2.INSERT-SORT\n");
printf("\t3.SELECT-SORT\n");
printf("\t4.SHELL-SORT\n");
printf("\t5.QUICK-SORT\n");
scanf("%d",&k);
if(k==1)
int a[5000],n=5000,i;
for(i=0;i<n;i++)
a[i]=rand()%500;
t_start= clock();
BUBBLESORT(a,n);
t_stop= clock();
sec=((float)(t_stop-t_start))/CLOCKS_PER_SEC;
printf("Tabloul sortat:\n");
AFISAREBUBBLE(a,n);
printf("\n");
printf("\n");
printf("\nUtilizand %d pasi",nrp1);
printf("\n");
goto Menu1;
if(k==2)
int a[5000],n=5000,i;
for(i=0;i<n;i++)
a[i]=rand()%500;
t_start=clock();
INSERTSORT(a,n);
t_stop=clock();
printf("Tabloul sortat:\n");
AFISAREINSERT(a,n);
printf("\n");
printf("\n");
printf("\nUtilizand %d pasi",nrp2);
printf("\n");
goto Menu1;
if (k==3)
int a[5000],n=5000,i;
for(i=0;i<n;i++)
a[i]=rand()%500;
t_start=clock();
SELECTSORT(a,n);
t_stop=clock();
printf("Tabloul sortat:\n");
AFISARE_SELECT_SORT(a,n);
printf("\n");
printf("\n");
printf("\nUtilizand %d pasi",nrp3);
printf("\n");
goto Menu1;
if(k==4)
int a[5000],n=5000,i;
for(i=0;i<n;i++)
a[i]=rand()%500;
t_start=clock();
SHELLSORT(a,n);
t_stop=clock();
printf("Tabloul sortat:\n");
AFISARE_SHELL_SORT(a,n);
printf("\n");
printf("\n");
printf("\nUtilizand %d pasi",nrp4);
printf("\n");
goto Menu1;
if(k==5)
int a[5000],n=5000,i;
for(i=0;i<n;i++)
a[i]=rand()%500;
t_start=clock();
QUICKSORT(a,0,n-1);
t_stop=clock();
printf("\nTabloul sortat:");
AFISAREQUICKSORT(a,n);
printf("\n");
printf("\n");
printf("\n");
goto Menu1;
return 0;
}
Date afisate :
Algoritm de sortare a bulelor :
Concluzie: