lista07

background image

Algorytmy i Struktury Danych

7. Analiza kosztu zamortyzowanego

1. (1p.) Czy ograniczenie O(1) na koszt zamortyzowany operacji na stosie

pozostanie w mocy, jeśli dopuścimy operację Multipush, która umożliwia
jednoczesne umieszczanie wielu elementów na stosie?

2. (1p.) Uzasadnij, ze jeśli dopuścimy operację Decrement, która zmniejsza

wartość k-bitowego licznika o 1, to ciąg n operacji może wymagać czasu
Θ(nk).

3. (1p.) Wykonujemy ciąg n operacji na strukturze danych. Koszt i-tej ope-

racji jest równy i jeśli i jest potęgą dwójki; w przeciwnym razie wynosi
1. Dokonaj analizy kosztu zamortyzowanego metodami kosztu sumarycz-
nego, księgowania i potencjału.

4. (2p.) Załóżmy, że oprócz operacji zwiększania możemy także zerować

licznik (tzn. zerować wszystkie bity) za pomocą operacji Reset. Pokaż jak
zaimplementować licznik, aby czas działania dowolnego ciągu n operacji
Increment

i Reset, działających na początkowo wyzerowanym liczniku,

wynosił O(n). (Wskazówka: Zapamiętuj wskaźnik do następnej jedynki.)

5. (1p.) Niech dana będzie funkcja potencjału Φ taka, że Φ(D

i

) ≥ Φ(D

0

)

dla każdego i, lecz Φ(D

0

) 6= 0. Wykaż, że istnieje funkcja potencjału

Φ

spełniająca warunki Φ

(D

0

) = 0, Φ

(D

i

) ≥ 0 dla i ≥ 1 oraz koszty

zamortyzowane operacji względem Φ

są takie same jak względem Φ.

6. (2p.) Rozważ zwyczajny binarny n-elementowy kopiec, na którym są do-

puszczalne operacje Insert i Extract-Min, których pesymistyczny koszt
działania wynnosi O(lg n). Podaj funkcję potencjału Φ, względem której
koszt zamortyzowany operacji Insert wynosi O(lg n), a koszt zamortyzo-
wany Extract-Min wynosi O(1).

7. (1p.) Jaki jest koszt wykonania na stosie n operacji Push, Pop, Multipop

przy założeniu, że na początku wyokość stosu wynosi s

0

, a po n operacjach

s

n

.

8. (1p.) Zakładając, że licznik zaczyna zliczać nie od zera, lecz od pewnej

liczby z b jedynkami w jej binarnej reprezentacji, wykaż, że koszt wykona-
nia n operacji Increment jest O(n), jeśli n = Ω(b).

9. (2p.) Pokaż jak zaimplementować kolejkę za pomocą dwóch zwyczajnych

stosów, aby koszt zamortyzowany każdej operacji Insert i Delete wynosił
O(1).

10. (1p.) Wyjaśnij intuicyjnie, dlaczego jeśli α

i−1

≤ 1/2 oraz α

i

≤ 1/2, to

koszt zamortyzowany operacji Table-Insert jest równy 0.

1

background image

11. (2p.) Chcemy zaimplementować tablicę z haszowaniem z wykorzystaniem

adresowania otwartego. Dlaczego lepiej traktować ją jako zapełnioną już
gdy współczynnik zapełnienia przekracza pewną stałą mniejszą niż 1? Jak
zagwarantować, że oczekiwany czas zamortyzowany operacji wstawiania
do takiej tablicy jest O(1)? Dlaczego oczekiwany faktyczny czas wstawia-
nia nie musi być dla wszystkich operacji O(1)?

12. (1p.) Wykaż, że jeśli i-tą operacją na tablicy dynamicznej jest Table-Delete

oraz α

i−1

≥ 1/2, to koszt zamortyzowany tej operacji względem podanego

na wykładzie potencjału jest ograniczony przez stałą.

13. (1p.) Przyjmij, że zamiast dwukrotnego zmniejszania rozmiaru tablicy,

gdy wspólczynnik zapełnienia spada poniżej 1/4, zmnejszamy jej rozmiar
mnożąc go przez 2/3 gdy współczynnik zapełnienia spada poniżej 1/3.
Użyj funkcji potencjału: Φ(T ) = |2 · num[T ] − size[T ]| by wykazać, że
koszt zamortyzowany operacji Table-Delete jest stały.

2


Wyszukiwarka

Podobne podstrony:
lista02a
lista06
Algorytmy i struktury danych, AiSD C Lista04
Lista0 2013 a2
lista04b
lista04
Lista05
Lista08
lista02b
chpchbchsich kon lista04 zima2009
chpchbchsich kon lista02 zima2009
lista02
Ćw TO2 ETK Lista0-Warunkipoczatkowe
WE Mat1 lista05 ukl r-n1
WE Mat1 lista07 ukl r-n3
Lista03
lista03
Lista09
lista03

więcej podobnych podstron