SDA Lucrarea 2 Backup

De la WikiLabs
Jump to navigationJump to search

Calcularea unui interval de timp

În Visual Studio 2013, următoarea funcție permite obținerea numărului de milisecunde care a trecut de la pornirea sistemului:

#include <windows.h>

unsigned long GetTickCount();

Pentru a calcula, de exemplu, cât durează apelul unei funcții ”test”, putem scrie următorul cod:

#include <windows.h>

void test();

int main(){
    unsigned long start;
    unsigned long finish;
    
    start = GetTickCount();
    test();
    finish = GetTickCount();

    printf("Functia test a rulat in %ld milisecunde.\n", finish - start); 
    return 0;
}

Exercițiul 1

Scrieți o funcție care să citească un fișier text ce conține un număr n, întreg, pozitiv, apoi n numere în virgulă mobilă. Funcția va sorta șirul de numere folosind algoritmul bubble-sort. Testați această funcție apelând-o în main.

Exercițiul 2

Scrieți o funcție care are ca argument un singur număr întreg pozitiv n. Această funcție trebuie să genereze un fișier text ce va conține numărul n pe prima poziție, apoi n numere aleatoare în virgulă mobilă. Această funcție va apela apoi funcția de la exercițiul 1 și va contoriza timpul de execuție. La sfârșit se va afișa pe ecran timpul de rulare și numărul n.

Exercițiul 3

Realizați un program care să apeleze funcția de la exercițiul 2 cu numere întregi de la 1000 la 10000, din 1000 în 1000 (adică 1000, 2000, 3000,... 10000). Folosind timpul măsurat de execuție pentru fiecare dimensiune de vector de intrare, se va calcula complexitatea în timp a algoritmului.