ASD Ćwiczenia 9: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Amal (dyskusja | edycje)
mNie podano opisu zmian
Amal (dyskusja | edycje)
mNie podano opisu zmian
Linia 1: Linia 1:
{{cwiczenie|[Dowód lematu 1]|dowod_lematu1|Udowodnij lemat 1
{{cwiczenie|[Dowód lematu 1]|dowod_lematu1|Udowodnij lemat 1


Rozwiązanie


<div class="mw-collapsible mw-made=collapsible mw-collapsed">
'''Rozwiązanie'''
<div class="mw-collapsible-content" style="display:none">
Indukcja po <math>k</math>.
Indukcja po <math>k</math>.
</div>
</div>
}}
}}


Linia 13: Linia 18:
Do początkowo pustej kolejki dwumianowej wstawiamy klucze 1, 2, ..., 1000. Czy teraz w jej skład wchodzi drzewo <math>B_5</math>?
Do początkowo pustej kolejki dwumianowej wstawiamy klucze 1, 2, ..., 1000. Czy teraz w jej skład wchodzi drzewo <math>B_5</math>?


Rozwiązanie  
<div class="mw-collapsible mw-made=collapsible mw-collapsed">
 
'''Rozwiązanie'''
<div class="mw-collapsible-content" style="display:none">
Tak, bo <math>1000 = 2^9+2^8+2^7+2^6+\mathbf{2^5}+2^3</math>.
Tak, bo <math>1000 = 2^9+2^8+2^7+2^6+\mathbf{2^5}+2^3</math>.
</div>
</div>


}}
}}
Linia 27: Linia 35:
(b) kopiec Fibonacciego otrzymane w wyniku wstawienia do początkowo pustej struktury kolejno kluczy 3, 1, 4, 15, 9, 2, 6, wykonaniu Delmin, zmniejszeniu klucza 15 do wartości 5 i usunięciu klucza 4.
(b) kopiec Fibonacciego otrzymane w wyniku wstawienia do początkowo pustej struktury kolejno kluczy 3, 1, 4, 15, 9, 2, 6, wykonaniu Delmin, zmniejszeniu klucza 15 do wartości 5 i usunięciu klucza 4.


Rozwiązanie
<div class="mw-collapsible mw-made=collapsible mw-collapsed">
 
'''Rozwiązanie'''
********** rysunek
<div class="mw-collapsible-content" style="display:none">
**************** rysunek
</div>
</div>


}}
}}
Linia 36: Linia 47:




{{cwiczenie|[Kolejka dwumianowa 3]|kolejka_dwumianowa3|
{{cwiczenie|[Reprezentacja]|kolejka_dwumianowa3|
Zaproponuj reprezentację komputerową kolejki dwumianowej i kopca Fibonacciego, która umożliwia realizację wszystkich operacji z podanymi kosztami.
Zaproponuj reprezentację komputerową kolejki dwumianowej i kopca Fibonacciego, która umożliwia realizację wszystkich operacji z podanymi kosztami.


Rozwiązanie
<div class="mw-collapsible mw-made=collapsible mw-collapsed">
 
'''Rozwiązanie'''
Kolejka dwumianowa:W każdym węźle pola: klucz, ojciec, lewy syn, prawy brat;wskaźniki do brata w korzeniach wykorzystywane do utrzymywania listy drzew; listy braci (i korzeni) cykliczne.
<div class="mw-collapsible-content" style="display:none">
Kolejka dwumianowa: W każdym węźle pola: klucz, ojciec, lewy syn, prawy brat;wskaźniki do brata w korzeniach wykorzystywane do utrzymywania listy drzew; listy braci (i korzeni) cykliczne.


Kopiec Fibonacciego:Podobnie, ale listy braci dwukierunkowe oraz dodatkowe pole z flagą logiczną, mówiącą czy węzeł stracił syna od czasu ostatniego odcięcia. Dostęp do listy drzew przez wskaźnik do korzenia z najmniejszym kluczem.
Kopiec Fibonacciego: Podobnie, ale listy braci dwukierunkowe oraz dodatkowe pole z flagą logiczną, mówiącą czy węzeł stracił syna od czasu ostatniego odcięcia. Dostęp do listy drzew przez wskaźnik do korzenia z najmniejszym kluczem.
</div>
</div>


}}
}}
Linia 53: Linia 67:
Napisz pseudokod operacji Meld i DelMin na kolejkach dwumianowych.
Napisz pseudokod operacji Meld i DelMin na kolejkach dwumianowych.


Rozwiązanie
<div class="mw-collapsible mw-made=collapsible mw-collapsed">
'''Rozwiązanie'''
<div class="mw-collapsible-content" style="display:none">


Zobacz [[ASD_Moduł_9#CLRS|[CLRS]]], podrozdz. 19.2 (konieczne są drobne modyfikacje).
Zobacz [[ASD_Moduł_9#CLRS|[CLRS]]], podrozdz. 19.2 (konieczne są drobne modyfikacje).
</div>
</div>


}}
}}
Linia 65: Linia 83:
Jakie są pesymistyczne (nie zamortyzowane) koszty poszczególnych operacji na kopcach Fibonacciego?
Jakie są pesymistyczne (nie zamortyzowane) koszty poszczególnych operacji na kopcach Fibonacciego?


Rozwiązanie  
<div class="mw-collapsible mw-made=collapsible mw-collapsed">
'''Rozwiązanie'''
<div class="mw-collapsible-content" style="display:none">


MakePQ: 1  
MakePQ: 1  
Linia 80: Linia 100:


Meld 1
Meld 1
</div>
</div>


}}
}}
Linia 89: Linia 111:
Napisz pseudokod operacji DelMin i DecreaseKey na kopcach Fibonacciego.
Napisz pseudokod operacji DelMin i DecreaseKey na kopcach Fibonacciego.


Rozwiązanie
<div class="mw-collapsible mw-made=collapsible mw-collapsed">
'''Rozwiązanie'''
<div class="mw-collapsible-content" style="display:none">


Zobacz [[ASD_Moduł_9#CLRS|[CLRS]]], podrozdz. 20.2 i 20.3.
Zobacz [[ASD_Moduł_9#CLRS|[CLRS]]], podrozdz. 20.2 i 20.3.
</div>
</div>
}}
}}


Linia 100: Linia 126:
Czy wysokość drzewa w <math>n</math>-wierzchołkowym kopcu Fibonacciego jest <math>O(\lg n)</math>?
Czy wysokość drzewa w <math>n</math>-wierzchołkowym kopcu Fibonacciego jest <math>O(\lg n)</math>?


Rozwiązanie
<div class="mw-collapsible mw-made=collapsible mw-collapsed">
'''Rozwiązanie'''
<div class="mw-collapsible-content" style="display:none">


Nie. Nietrudno podać przykład ciągu operacji, który prowadzi do powstania drzewa-linii.
Nie. Nietrudno podać przykład ciągu operacji, który prowadzi do powstania drzewa-linii.
</div>
</div>
}}
}}


Linia 111: Linia 141:
Czy możliwa jest taka modyfikacja kopca Fibonacciego, żeby zarówno operacja Insert, jak i DelMin miały koszt zamortyzowany <math>o(\log n)</math>?
Czy możliwa jest taka modyfikacja kopca Fibonacciego, żeby zarówno operacja Insert, jak i DelMin miały koszt zamortyzowany <math>o(\log n)</math>?


Rozwiązanie
<div class="mw-collapsible mw-made=collapsible mw-collapsed">
'''Rozwiązanie'''
<div class="mw-collapsible-content" style="display:none">


Nie, bo wtedy można by użyc takiej struktury danych do posortowania <math>n</math> elementów w czasie <math>o(n\log n)</math>.
Nie, bo wtedy można by użyc takiej struktury danych do posortowania <math>n</math> elementów w czasie <math>o(n\log n)</math>.
</div>
</div>


}}
}}

Wersja z 15:41, 9 sie 2006

Ćwiczenie [Dowód lematu 1]

{{{3}}}



Ćwiczenie [Kolejka dwumianowa 1]

{{{3}}}



Ćwiczenie [Kolejka dwumianowa 2]

{{{3}}}



Ćwiczenie [Reprezentacja]

{{{3}}}



Ćwiczenie [Meld i DelMin]

{{{3}}}



Ćwiczenie [Koszty operacji]

{{{3}}}



Ćwiczenie [Pseudokod]

{{{3}}}



Ćwiczenie [Wysokość drzewa]

{{{3}}}



Ćwiczenie [Modyfikacja kopca Fibonacciego]

{{{3}}}