Differences

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

Link to this comparison view

sd-ca:laboratoare:laborator-12 [2015/05/24 12:53]
cosmin_ioan.petrisor [Exerciții]
sd-ca:laboratoare:laborator-12 [2015/05/28 15:07] (current)
gabriel.cristache [Exerciții]
Line 19: Line 19:
 O structură de date este o metodă de a reține anumite date astfel încât operațiile cu acestea (căutare, inserare, ștergere) să fie făcute cât mai eficient și să respecte cerințele programatorului. De multe ori, o anumită structură de date se află la baza unui algoritm sau sistem, iar o performanță bună a acesteia (complexitate spațială și temporală cât mai mică) influențează performanța întregului sistem. O structură de date este o metodă de a reține anumite date astfel încât operațiile cu acestea (căutare, inserare, ștergere) să fie făcute cât mai eficient și să respecte cerințele programatorului. De multe ori, o anumită structură de date se află la baza unui algoritm sau sistem, iar o performanță bună a acesteia (complexitate spațială și temporală cât mai mică) influențează performanța întregului sistem.
  
-În laboratoarele precedente am observat că un arbore binar de căutare de înălțime **h** implementează operațiile descrise mai sus într-o complexitate de **O(h)**. Dacă acest arbore binar nu este capabil să gestioneze elementele ce sunt inserate pentru a își menține o structura echilibrată atunci complexitatea pe operațiile de baza va crește.+În laboratoarele precedente am observat că un arbore binar de căutare de înălțime **h** implementează operațiile descrise mai sus într-o complexitate de **O(h)**. Dacă acest arbore binar nu este capabil să gestioneze elementele ce sunt inserate pentru a își menține o structura echilibrată atunci complexitatea pe operațiile de bază va crește.
  
 <note tip> <note tip>
Line 42: Line 42:
 De fiecare dată când un nod este inserat în arbore prioritatea lui este generată aleator (metodă similară cu cea folosită la randomized quick sort, în care la fiecare pas pivotul este generat aleator). Arborele va fi aranjat într-un mod aleator, bineînțeles,​ respectând cei doi invarianți. Cum numărul arborilor echilibrați este mai mare decât cel al arborilor rău echilibrați,​ șansa este destul de mică ca prioritățile generate aleator să nu mențină arborele echilibrat. De fiecare dată când un nod este inserat în arbore prioritatea lui este generată aleator (metodă similară cu cea folosită la randomized quick sort, în care la fiecare pas pivotul este generat aleator). Arborele va fi aranjat într-un mod aleator, bineînțeles,​ respectând cei doi invarianți. Cum numărul arborilor echilibrați este mai mare decât cel al arborilor rău echilibrați,​ șansa este destul de mică ca prioritățile generate aleator să nu mențină arborele echilibrat.
 </​note>​ </​note>​
-Demonstratia ​complet teoretică asupra faptului că operațiile de baza au complexitatea O(logN) se poate găsi in [2].+Demonstraţia ​complet teoretică asupra faptului că operațiile de bază au complexitatea O(logN) se poate găsi în [2].
  
  
Line 154: Line 154:
     * [0.5p] Inserare     * [0.5p] Inserare
     * [0.5p] Ștergere     * [0.5p] Ștergere
 +
 +2.**[1p]** Realizați o parcurgere a treapului astfel încât să obțineți cheile sortate crescător/​descrescător.
 +
 +3.**[2p]** Realizați o parcurgere a treapului astfel încât să obțineți o structură arborescentă a priorităților,​ pentru a observa invariantul de heap.
 +
 +4.**[2p]** Scrieți o funcție care să răspundă într-o complexitate de ''​O(logN)''​ la următoarea cerință: Care este cea de-a K-a cheie, în ordinea sortării crescătoare,​ care se află în treap?
 +
 <​hidden>​ <​hidden>​
 2.**[1p]** Realizați o parcurgere a treapului astfel încât să obțineți cheile sortate crescător/​descrescător. 2.**[1p]** Realizați o parcurgere a treapului astfel încât să obțineți cheile sortate crescător/​descrescător.
Line 161: Line 168:
 4.**[4p]** Scrieți o funcție care să răspundă într-o complexitate de ''​O(logN)''​ la următoarea cerință: Care este cea de-a K-a cheie, în ordinea sortării crescătoare,​ care se află în treap?. 4.**[4p]** Scrieți o funcție care să răspundă într-o complexitate de ''​O(logN)''​ la următoarea cerință: Care este cea de-a K-a cheie, în ordinea sortării crescătoare,​ care se află în treap?.
 </​hidden>​ </​hidden>​
-===== Referințe ​=====+===== Bibliografie ​===== 
 + 
 +[1] [[http://​www.cs.cmu.edu/​afs/​cs.cmu.edu/​project/​scandal/​public/​papers/​treaps-spaa98.pdf | Fast Set Operations Using Treaps]] 
 + 
 +[2] [[http://​compgeom.cs.uiuc.edu/​~jeffe/​teaching/​algorithms/​notes/​10-treaps.pdf | Randomized Binary Search Trees]] 
 + 
 +[3] [[http://​www.cs.cmu.edu/​afs/​cs.cmu.edu/​academic/​class/​15451-s07/​www/​lecture_notes/​lect0208.pdf | Balanced Search Trees]] 
 + 
 +[4] [[http://​en.wikipedia.org/​wiki/​Red%E2%80%93black_tree | Red-black Tree]] 
 + 
 +[5] [[http://​en.wikipedia.org/​wiki/​AVL_tree | AVL Tree]]
  
-  * [[http://​www.cs.cmu.edu/​afs/​cs.cmu.edu/​project/​scandal/​public/​papers/​treaps-spaa98.pdf | Fast Set Operations Using Treaps]] +[6] [[http://en.wikipedia.org/wiki/B-tree B-Tree]]
-  * [[http://compgeom.cs.uiuc.edu/~jeffe/teaching/​algorithms/​notes/​10-treaps.pdf ​Randomized Binary Search Trees]] +
-  * [[http://​www.cs.cmu.edu/​afs/​cs.cmu.edu/​academic/​class/​15451-s07/​www/​lecture_notes/​lect0208.pdf | Balanced Search Trees]]+
sd-ca/laboratoare/laborator-12.1432461235.txt.gz · Last modified: 2015/05/24 12:53 by cosmin_ioan.petrisor
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