Edit this page Backlinks This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ===== Analiza amortizata ===== Utilizati aggregate method, accounting method si potential method pentru a gasi costul amortizat pentru situatiile prezentate mai jos. === 1. Stack === Presupunand ca avem o implementare a unei stive care permite operatiile $ pop - O(1) $, $ push - O(1) $ si $ mpop(k) - O(k) $, demonstrati ca pentru o secventa arbitrara $ S $ de $ n $ operatii, $ cost(S) = O(n) $ si ca fiecare operatie are un cost agregat $ cost(op)=O(1) $. **Exemplu:** $ push, pop, push, push, push, mpop(2), push, pop, push $ === 2. Heap === Un max-heap e un arbore binar aproape complet - toate nivelele cu exceptia ultimului sunt complete, iar ultimul este completat de la stanga la dreapta. Fiecare 2 noduri A si B unde B este fiu al lui A satisfac relatia: $ key(B) \leq key(A) $ Un max-heap se poate stoca sub forma de array, unde $ a[i] $ are copiii $ a[2i] $ si $ a[2i+1] $. Adaugarea unui element presupune: - adauga un element in prima pozitie libera de pe ultimul nivelele - compara elementul adaugat cu parintele si interschimba-i daca e cazul - repeta pasul anterior pana nodul respecta proprietatea in raport cu parintele lui sau a devenit radacina Aratati ca fiecare inserare are un cost agregat $ cost(op)=O(logn) $. === 3. Binary Counter === Presupunand ca avem un contor binar implementat folosind o lista de $ k $ biti, el permite doar operatia $ increment $ care adauga $ 1 $ la contor. Aceasta operatie are complexitate temporala O(k) in cel mai rau caz. Aratati insa ca operatia are un cost amortizat constant.