Sie sind auf Seite 1von 4

Ministère de l'éducation de la République de Moldova

Université technique de Moldavie


Faculté d’Ordinateur, Informatique et Microélectronique
Filière francophone “Informatique”

SDA
Travail pratique nr.2
Thème: ,, Opérations avec de types de tri ”

Effectué par l’étudiante de gr FI-181 : Damean Alexandra

Vérifié par le professeur : Rusu Viorel

Chișinau 2019
Var.6

Fie dat un tablou unidimensional din n elemente întregi. Să se ordoneze elementele tabloului în ordine
descendentă, utilizând metoda lui Shaker şi metoda de sortare rapidă qsort. Să se compare eficienţa
metodelor în funcţie de numărul de comparaţii şi de numărul de permutări.
#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <conio.h>

#define SIZE 10

int a[SIZE], b[SIZE];

void completation (int[], int [], int);

void print_array(int[], int);

void shakersort (int [], int);

int cmpfunc (const void * a, const void * b);

void swap(int *a, int *b);

int main()

completation(a,b,SIZE);

printf("Array:\n");

print_array(a,SIZE);

shakersort(a,SIZE);

printf("\nSorted array:");

print_array(a,SIZE);

qsort(b, SIZE, sizeof(int), cmpfunc);

printf("\nSorted array:");

print_array(b,SIZE);

return 0;

void completation (int x[], int y[], int n)

int i;

srand(time(NULL));

for (i=0; i<n; i++)

y[i]=x[i]=rand()%50-20;

}
void print_array(int x[], int n)

int i;

for (i=0; i<n; i++)

printf("%d ", x[i]);

if ((i)%10==0) printf(" ");

void swap(int *a, int *b){

int temp;

temp = *a;

*a = *b;

*b = temp;

void shakersort(int x[], int n)

int m=0, c=0;

int p, i;

for (p = 1; p <= n / 2; p++)

for (i = p - 1; i < n - p; i++)

c++;

if (x[i] < x[i+1])

swap(&x[i], &x[i + 1]);

m++;

for (i = n - p - 1; i >= p; i--)

c++;

if (x[i] > x[i-1])

swap(&x[i], &x[i - 1]);

m++;
}

printf("\n Shaker sort result\nComparations=%d\nmovement=%d",c,m);

int cmpfunc (const void * a, const void * b)

return ( *(int*)b - *(int*)a );

Conclusion: Dans ce travail de laboratoire, j'ai travaillé avec le types de tri, J'ai trié un tableau
unidimensionnelle par ordre décroissant, à l'aide de qsort et shakersort.D'après les indices offerts par
l'enseignant je peux terminer ce laboratoire.Je peux donc dire que ce travail semblait compliqué, mais
j'ai réussi à trouver le bon algorithme pour le faire. Enfin, je tiens à dire que ce travail pratique m'a aidé
à mieux comprendre le thème ,,Le types de tri ‘’.

Das könnte Ihnen auch gefallen