Differences

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

Link to this comparison view

sda-ab:laboratoare:08 [2021/04/16 12:20]
leonard.necula [Probleme propuse]
sda-ab:laboratoare:08 [2021/05/24 12:59] (current)
leonard.necula [Probleme propuse]
Line 161: Line 161:
     - **Hint**: Creati un min-heap de dimensiune k+1, populati-l cu primele k+1 elemente, apoi parcurgeti restul elementelor,​ la fiecare pas stocati varful in vectorul solutie si adaugati urmatorul element din vector in heap. Nu uitati ca la final sa adaugati si elementele ramase in heap in vectorul solutie     - **Hint**: Creati un min-heap de dimensiune k+1, populati-l cu primele k+1 elemente, apoi parcurgeti restul elementelor,​ la fiecare pas stocati varful in vectorul solutie si adaugati urmatorul element din vector in heap. Nu uitati ca la final sa adaugati si elementele ramase in heap in vectorul solutie
    - Fie M vectori sortați de diferite dimensiuni. Interclasați vectorii eficient folosind un heap.    - Fie M vectori sortați de diferite dimensiuni. Interclasați vectorii eficient folosind un heap.
-    - **Hint**: Ce dimensiune ​trebuie să aibă heap-ul? +    - **Metoda I**: Implementati un min heap in care fiecare element este o pereche (valoarea, index_vector). Creati un min heap de acest tip de dimensiune ​M, introduceti primul element din fiecare vector. La fiecare pas din cadrul algoritmului eliminati radacina din heap, introduceti valoarea in vectorul solutie si adaugati in heap urmatorul element din vectorul corespunzator elementului abia eliminat. 
 +    - **Metoda II**: Implementati un min heap (vezi curs), folosind elemente de tip min heap implementati un heap in care fiecare element este un heap de sine statator. Pentru simplitate vom numii heap-ul ​de heap-uri heap global, iar heap-urile din acesta heap-uri interne. Creati un heap global de dimensiune M si populati fiecare heap intern cu cate unul dintre vectorii sortati, aplicati heapify pe toate nodurile interne ale heap-ului global. Cat timp heap-urile interne inca mai au elemente faceti urmatoarele operatii: 
 +      * Extrageti radacina radacinii heap-ului global si stocati valoarea in vectorul solutie 
 +      * Aplicati heapify pe radacina heap-ului global 
 +      * Aplicati heapify pe heap-ul global
  
  
Line 196: Line 199:
     - Tabelă de dispersie cu înlănțuire     - Tabelă de dispersie cu înlănțuire
     - Tabelă de dispersie cu adresare închisă     - Tabelă de dispersie cu adresare închisă
-   - Găsiți toate perechile de mulțimi simetrice dintr-un vector de mulțimi de 2 elemente. Două mulțimi sunt simetrice dacă capătul din stanga al primei mulțimi este egal cu cel din dreapta a celei de-a doua, iar cătul din dreapta al primei este egal cu cel din stanga al celei de-a doua.+   - Găsiți toate perechile de mulțimi simetrice dintr-un vector de mulțimi de 2 elemente. Două mulțimi sunt simetrice dacă capătul din stanga al primei mulțimi este egal cu cel din dreapta a celei de-a doua, iar capătul din dreapta al primei este egal cu cel din stanga al celei de-a doua.
    * **Exemplu**:​ { [10, 20], [20, 10], [1, 11], [1, 10], [10, 1]} => {[10, 20], [1, 10]}    * **Exemplu**:​ { [10, 20], [20, 10], [1, 11], [1, 10], [10, 1]} => {[10, 20], [1, 10]}
    * **Hint**: Se folosește o singură tabelă de dispersie.    * **Hint**: Se folosește o singură tabelă de dispersie.
sda-ab/laboratoare/08.1618564809.txt.gz · Last modified: 2021/04/16 12:20 by leonard.necula
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