Aici sunt prezentate diferențele dintre versiunile selectate și versiunea curentă a paginii.
Ambele părți revizuirea anterioară Versiuni anterioare Urmatoarea versiune | Versiuni anterioare Urmatoarea versiune Ambele părți următoarea reviziune | ||
laboratoare:laborator-09 [2017/02/27 20:10] mihai.iacov [3.3 Radix Sort] |
laboratoare:laborator-09 [2017/02/27 20:43] mihai.iacov [4. Exercitii] |
||
---|---|---|---|
Linia 283: | Linia 283: | ||
===== 4. Exercitii ===== | ===== 4. Exercitii ===== | ||
+ | |||
+ | E0. Generaţi un vector de n întregi cu n = 1e6. Sortaţi vectorul cu cei trei algoritmi şi comparaţi rezultatele. | ||
===1. Shell sort=== | ===1. Shell sort=== | ||
Linia 298: | Linia 300: | ||
E4. Schimbaţi funcţia de indexare(obtineOctetul) şi valoarea lui k pentru a sorta un vector de şiruri de caractere. | E4. Schimbaţi funcţia de indexare(obtineOctetul) şi valoarea lui k pentru a sorta un vector de şiruri de caractere. | ||
+ | |||
+ | E5. Se dă un vector cu n întregi, unde toate valorile din vector sunt cuprinse între 0 şi n< | ||
+ | * Încercaţi să folosiţi altă " | ||
+ | |||
+ | <note tip> | ||
+ | |||
+ | <file cpp> | ||
+ | //MODULATOR = 2^31 - 1 | ||
+ | #define MODULATOR 2147483647 | ||
+ | #define MULTIP 1103515245 | ||
+ | #define INCREMENT 12345 | ||
+ | int seed = 0; //unsigned int pentru generat doar numere naturale | ||
+ | int rand() { | ||
+ | seed = (MULTIP * seed + INCREMENT) % MODULATOR; | ||
+ | return seed; | ||
+ | } | ||
+ | void filter(int v[], int n, int cap) | ||
+ | { | ||
+ | for(int i = 0;i < n;i++) { | ||
+ | v[i] = rand() % cap; | ||
+ | } | ||
+ | } | ||
+ | </ | ||