Sunteți pe pagina 1din 5

Universitatea Tehnică a Moldovei

Facultatea Calculatoare, Informatică și Microelectronică


Specialitatea Tehnologii Informaționale

RAPORT
La lucrarea de laborator nr.3
Tema: “Algoritmi de sortare a datelor și analiza performanțelor.”
Disciplina: “Programarea calculatoarelor”

A elaborat : st. gr. TI-221 F/R, Grosu Sergiu


A verificat : Asistent universitar, Mantaluța Marius

Chisinau 2023
Tema: Algoritmi de sortare a datelor și analiza performanțelor.
Scopul lucrării: Însuşirea, folosirea şi obţinerea deprinderii practice de elaborare şi
aplicare a diferitor algoritmi de sortare
Sarcina: Să se elaboreze schema bloc și programul care ar îndeplini următoarele sarcini.
Varianta: 9
Fie dat un tablou unidimensional din n caractere. Să se ordoneze elementele tabloului în ordine
descendentă, utilizând metoda bulelor şi funcţia predefinită qsort.

Schema bloc al programului:

START

char arr[] = {'f', 'd', 'a', 'b', 'e', 'c'};


int n = sizeof(arr)/sizeof(arr[0]);

scanf("%i", &dimension);
bubbleSort
(arr, n);

printf("Dupa
ordonarea folosind
metoda bulelor: ");

int i = 0

i++ i < n; 1

printf("%c ",
arr[i]);
1

qsort(arr, n, sizeof(char),
cmpfunc);

printf("\nDupa
ordonarea folosind
qsort: ");

int i = 0

i++ i < n;

printf("%c ", arr[i]);

return 0;

STOP
bubbleSort
(arr, n);

int i, j;
char temp;

int i = 0

3 i++ i < n-1;

int j = 0
4
j++ j < n-i-1; 3

temp = arr[j];
arr[j] <
arr[j] = arr[j+1]; arr[j+1]
arr[j+1] = temp;

Listingul programului:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// functie pentru a ordona un tablou folosind metoda bulelor


void bubbleSort(char arr[], int n) {
int i, j;
char temp;
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-i-1; j++) {
if (arr[j] < arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}

// functie pentru a compara elementele folosind qsort


int cmpfunc (const void * a, const void * b) {
return ( *(char*)b - *(char*)a );
}

int main() {
char arr[] = {'f', 'd', 'a', 'b', 'e', 'c'};
int n = sizeof(arr)/sizeof(arr[0]);

// ordonare folosind metoda bulelor


bubbleSort(arr, n);
printf("Dupa ordonarea folosind metoda bulelor: ");
for (int i = 0; i < n; i++) {
printf("%c ", arr[i]);
}

// ordonare folosind qsort


qsort(arr, n, sizeof(char), cmpfunc);
printf("\nDupa ordonarea folosind qsort: ");
for (int i = 0; i < n; i++) {
printf("%c ", arr[i]);
}

return 0;
}

Rezultatul compilării și rulării:

Concluzia:
La acest laborator am invatat sa folosez metoda integrada de sortare qsort() a tablourilor, aditional
am pus in aplicare metoda de sortare bubble sort. Bubble sort se socoate una din cele mai simple si
cele mai raspandine metode de sortare. Bubble sort sa adeverit a fi mai rapir decat qsort().

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