Unelte utilizator

Unelte site


laboratoare:laborator-09

Diferențe

Aici sunt prezentate diferențele dintre versiunile selectate și versiunea curentă a paginii.

Link către această vizualizare comparativă

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<sup>2</sup> - 1. Sortaţi vectorul în timp O(n).
 +  * Încercaţi să folosiţi altă "bază" decât 256 pentru algoritm.
 +
 +<note tip>Puteţi folosi următorul cod pentru a genera vectori de întregi de dimensiuni mari</note>
 +
 +<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;
 +    }
 +}
 +</file>
  
laboratoare/laborator-09.txt · Ultima modificare: 2017/04/27 21:18 de către iulian.matesica