Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sda-aa:laboratoare:07 [2021/04/12 06:53]
cristian.rusu [2.3 Operații pe biți]
sda-aa:laboratoare:07 [2021/04/12 06:55] (current)
cristian.rusu [4. Exerciții]
Line 26: Line 26:
    * Este recomandat ca funcţia de indexare să existe explicit (să fie definită ca subprogram) atunci când are o formă complicată. Dacă are o formă simplă (cum ar fi o singură operaţie), această parte poate fi omisă.    * Este recomandat ca funcţia de indexare să existe explicit (să fie definită ca subprogram) atunci când are o formă complicată. Dacă are o formă simplă (cum ar fi o singură operaţie), această parte poate fi omisă.
  
-====== 2.3 Operații pe biți ======+=== 2.3 Operații pe biți ===
  
 Menţionăm următoarele operaţii pe biţi ce se pot folosi în C/C++ : Menţionăm următoarele operaţii pe biţi ce se pot folosi în C/C++ :
Line 47: Line 47:
    * n >> p == n / k    * n >> p == n / k
    * n & (k - 1) == n % k    * n & (k - 1) == n % k
-   ​* ​+
 Apar diferenţe în cazul numerelor negative.</​note>​ Apar diferenţe în cazul numerelor negative.</​note>​
  
Line 122: Line 122:
  
  
-=== Radix Sort ===+=== 3.2 Radix Sort ===
  
    * Timp mediu: O(N * k)    * Timp mediu: O(N * k)
Line 194: Line 194:
   - Generaţi un vector de n întregi cu n = 1e6. Sortaţi vectorul cu cei doi algoritmi şi comparaţi rezultatele (aici ne intereseaza viteza sortării, vezi https://​stackoverflow.com/​questions/​5248915/​execution-time-of-c-program). [80% notă]   - Generaţi un vector de n întregi cu n = 1e6. Sortaţi vectorul cu cei doi algoritmi şi comparaţi rezultatele (aici ne intereseaza viteza sortării, vezi https://​stackoverflow.com/​questions/​5248915/​execution-time-of-c-program). [80% notă]
   - Introduceţi o variabilă globală cu care să contorizaţi numărul de apelări ale funcţiei „cerne“. Afişaţi numărul de apelări necesare pentru construirea heap-ului (makeHeap) şi numărul de apelări necesare pentru tot algoritmul (heapSort). [10% notă]   - Introduceţi o variabilă globală cu care să contorizaţi numărul de apelări ale funcţiei „cerne“. Afişaţi numărul de apelări necesare pentru construirea heap-ului (makeHeap) şi numărul de apelări necesare pentru tot algoritmul (heapSort). [10% notă]
-  - Cu Radix Sort, încercaţi să sortaţi un vector cu orice numere întregi(pozitive şi negative). Verificaţi rezultatul şi adăugaţi un pas în algoritm pentru a aşeza corect elementele. [10% notă]+  - Cu Radix Sort, încercaţi să sortaţi un vector cu orice numere întregi (pozitive şi negative). Verificaţi rezultatul şi adăugaţi un pas în algoritm pentru a aşeza corect elementele. [10% notă]
  
 ==== 5. Probleme opționale, de interviu ==== ==== 5. Probleme opționale, de interviu ====
  
   - Se dă un vector cu n întregi, unde toate valorile din vector sunt cuprinse între 0 şi n^2 - 1. Sortaţi vectorul în timp O(n). Hint: încercaţi să folosiţi altă „bază“ decât 256 pentru algoritm.   - Se dă un vector cu n întregi, unde toate valorile din vector sunt cuprinse între 0 şi n^2 - 1. Sortaţi vectorul în timp O(n). Hint: încercaţi să folosiţi altă „bază“ decât 256 pentru algoritm.
sda-aa/laboratoare/07.1618199619.txt.gz · Last modified: 2021/04/12 06:53 by cristian.rusu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0