Documente Academic
Documente Profesional
Documente Cultură
Varianta 7
RAPORT
privind efectuarea lucrării de laborator nr. 7
Chisinău 2018
Cuprin
2
1. Scopul și obiectivele lucrării....................................................................................................3
2. Sarcina......................................................................................................................................4
3. Schema bloc.............................................................................................................................5
Concluzii..........................................................................................................................................6
Bibliografie......................................................................................................................................7
Anexa A...........................................................................................................................................8
Anexa B...........................................................................................................................................9
3
1. Scopul și obiectivele lucrării
3) Să se preia varianta problemei din Ll6 SDA pentru analiza empirică a complexităţii
algoritmilor şi calculul timpului de execuţie, implementând funcţiile de timp C, şi
rularea programelor în limbajul C;
4
2. Sarcina
De analizat timpul de execuție a algoritmului selectat în laboratorul 6, de explicat ce înseamnă cel
mai defavorabil caz, timp mediu de execuție, complexitate asimtotică, notațiile de asimtotice, care
sunt etapele analizei complexității.
5
3. Schema bloc
6
Concluzia
Lucrarea dată a avut ca scop să ne învețe esenţialul prelucrării structurilor de date prin
diferite metode de programare, fiecare având specificul ei de utilizare. Spre exemplu:
Greedy – pare atât de simplă încât, la început, ne miră faptul că a fost evidențiată ca
tehnică. La o analiză mai atentă, vom observa că lucrurile nu stau chiar așa. Exemplele
prezentate în indicațiile metodice, ele nu au alt rol decât a evidenția caracteristicile tehnicii.
Specificul acestei metode constă în faptul că se construiește soluția optimă pas cu pas, la fiecare
pas selectat în soluție elementul care pare ”cel mai bun” la momentul respectiv, în speranța ca va
duce la soluția optimă globală.
Divide et Impera – Algoritmii de tip Divide et Impera au buna comportare in timp ,daca
se indeplinesc urmatoarele conditii:
7
Bibliografie
8
Anexa A
9
Anexa B
#include <stdio.h>
#define N 9
#define UNASSIGNED 0
if (grid[row][col] == num) {
return 1;
return 0;
if (grid[row][col] == num) {
return 1;
return 0;
return 1;
}
return 0;
10
int is_safe_num(int grid[N][N], int row, int col, int num) {
if (grid[*row][*col] == 0) {
return 1;
return 0;
int row = 0;
int col = 0;
return 1;
grid[row][col] = num;
if (solve(grid)) {
return 1;
grid[row][col] = UNASSIGNED;
return 0;
11
void print_grid(int grid[N][N]) {
printf("%2d", grid[row][col]);
printf("\n");
int main() {
{5, 2, 0, 0, 0, 0, 0, 0, 0},
{0, 8, 7, 0, 0, 0, 0, 3, 1},
{0, 0, 3, 0, 1, 0, 0, 8, 0},
{9, 0, 0, 8, 6, 3, 0, 0, 5},
{0, 5, 0, 0, 9, 0, 6, 0, 0},
{1, 3, 0, 0, 0, 0, 2, 5, 0},
{0, 0, 0, 0, 0, 0, 0, 7, 4},
{0, 0, 5, 2, 0, 6, 3, 0, 0}};
if (solve(grid)) {
print_grid(grid);
} else {
printf("no solution");
return 0;
12