ASD Ćwiczenia 2: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 4: | Linia 4: | ||
Udowodnij, że algorytm Sklejanie-Par jest poprawny. Co by było, gdybyśmy w jednym kroku sklajali dwa lub trzy elementy, koszt | Udowodnij, że algorytm Sklejanie-Par jest poprawny. Co by było, gdybyśmy w jednym kroku sklajali dwa lub trzy elementy, koszt | ||
sklejenia suma wag. | sk | ||
== =='''Zadanie 1''' == | |||
Udowodnij, że algorytm Sklejanie-Par jest poprawny. Co by było, gdybyśmy w jednym kroku sklejali co najwyżej k elemnów, kosztem | |||
pojedyńczego sklejenia jest w dalszym ciągu suma wag. | |||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> | <div class="mw-collapsible mw-made=collapsible mw-collapsed"> | ||
Linia 10: | Linia 15: | ||
<div class="mw-collapsible-content" style="display:none"> | <div class="mw-collapsible-content" style="display:none"> | ||
Postępujemy podobnie jak poprzednio, za kżdym rzem wybieramy do sklejenia k najmniejszych elemenów, z tym że w pierwszej | |||
iteracji liczba elementów moe być mniejsza, musi być taka żeby w każdej następnej iteracji sklejać dokładnie k. | |||
</div> | </div> | ||
</div> | </div> | ||
'''Zadanie 2''' | =='''Zadanie 2''' == | ||
Opisz algorytm na znajdowanie fałszywej monety wynikający z rekurencyjnego wzoru <math> a_n=3\cdot a_{n-1}+3 </math> | Opisz algorytm na znajdowanie fałszywej monety wynikający z rekurencyjnego wzoru <math> a_n=3\cdot a_{n-1}+3 </math> | ||
Linia 24: | Linia 30: | ||
<div class="mw-collapsible-content" style="display:none"> | <div class="mw-collapsible-content" style="display:none"> | ||
Algorytm najpierw rekurencyjnie korzysta z algorytmu dla n-1 grupując monety w paczki po trzy. Do tych paczek stosujemy algorytm dla n-1 | |||
Dodatkowo musimy sprytnie dożucić trzy monety. | |||
</div> | </div> | ||
</div> | </div> | ||
'''Zadanie | =='''Zadanie 3''' == | ||
Zmodyfikuj algorytm Sortowanie-Kolejkowe tak aby w czasie O(n log n) liczył liczbę inwersji w permutacji. | Zmodyfikuj algorytm Sortowanie-Kolejkowe tak aby w czasie O(n log n) liczył liczbę inwersji w permutacji. | ||
Linia 39: | Linia 46: | ||
<div class="mw-collapsible-content" style="display:none"> | <div class="mw-collapsible-content" style="display:none"> | ||
Skorzystaj z algorytmu | Skorzystaj z algorytmu | ||
liczącego liczbę inwersji mięðzy | liczącego liczbę inwersji mięðzy dwoma posortowanymi tablicami. | ||
</div> | </div> | ||
Linia 45: | Linia 52: | ||
=='''Zadanie 4''' == | |||
Jak policzyć liczbę kolejkową w czasie liniowym. | |||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> | <div class="mw-collapsible mw-made=collapsible mw-collapsed"> | ||
Linia 55: | Linia 62: | ||
<div class="mw-collapsible-content" style="display:none"> | <div class="mw-collapsible-content" style="display:none"> | ||
Wynikiem jest k-1, gdzie k jest wynikiem algorytmu Najdłuższy-Malejący. | |||
Potraktujmy ciąg elementów bezposrednio wyoisywanych z wejścia na wyjści jako | |||
dodatkową kolejkę. Wtedy kolejki odpowiadaja ciągom elemenów wpisywanych kolejno do tablicy na | |||
określona pozycje w algorytmie Najdłuższy-Malejący. | |||
</div> | </div> | ||
</div> | </div> |
Wersja z 11:32, 11 wrz 2006
----------------------------------------------------------------------
Zadanie 1
Udowodnij, że algorytm Sklejanie-Par jest poprawny. Co by było, gdybyśmy w jednym kroku sklajali dwa lub trzy elementy, koszt sk
== ==Zadanie 1 ==
Udowodnij, że algorytm Sklejanie-Par jest poprawny. Co by było, gdybyśmy w jednym kroku sklejali co najwyżej k elemnów, kosztem pojedyńczego sklejenia jest w dalszym ciągu suma wag.
Rozwiązanie
==Zadanie 2 ==
Opisz algorytm na znajdowanie fałszywej monety wynikający z rekurencyjnego wzoru
Rozwiązanie
==Zadanie 3 ==
Zmodyfikuj algorytm Sortowanie-Kolejkowe tak aby w czasie O(n log n) liczył liczbę inwersji w permutacji.
Rozwiązanie
==Zadanie 4 ==
Jak policzyć liczbę kolejkową w czasie liniowym.
Rozwiązanie