Zaawansowane algorytmy i struktury danych/Ćwiczenia 13: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Rytter (dyskusja | edycje)
Nie podano opisu zmian
Rytter (dyskusja | edycje)
Nie podano opisu zmian
Linia 19: Linia 19:
Dany jest ciąg nawiasów okrągłych lub kwadratowych ''('' , '')'', ''['' , '']'', sprawdzić czy jest to ciąg poprawny nawiasowo w czasie log n
Dany jest ciąg nawiasów okrągłych lub kwadratowych ''('' , '')'', ''['' , '']'', sprawdzić czy jest to ciąg poprawny nawiasowo w czasie log n
z pracą liniową.
z pracą liniową.
 
<div class="mw-collapsible mw-made=collapsible mw-collapsed">'''Rozwiązanie'''
<div class="mw-collapsible-content" style="display:none">
Podobnie jak w zadaniu 1.
</div>
</div>




Linia 29: Linia 33:
(ale mogą jednocześnie tę samą wartość).
(ale mogą jednocześnie tę samą wartość).


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


<math> \max\{(\frac{n}{n^{\alpha}})^{1+\epsilon_k},\  \frac{n}{n^{\alpha}}
<math> \max\{(\frac{n}{n^{\alpha}})^{1+\epsilon_k},\  \frac{n}{n^{\alpha}}
Linia 37: Linia 41:
gdzie <math> \alpha=\frac{1}{2^{k}+1} </math>
gdzie <math> \alpha=\frac{1}{2^{k}+1} </math>


</div>
</div>


==Zadanie 4==
==Zadanie 4==
Linia 44: Linia 50:
(ale mogą jednocześnie tę samą wartość).
(ale mogą jednocześnie tę samą wartość).


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


Dzielimy tablicę na kawałki długości <math> \sqrt{n} </math>. Z otrzymanymi kawałkami robimy to samo, aż  
Dzielimy tablicę na kawałki długości <math> \sqrt{n} </math>. Z otrzymanymi kawałkami robimy to samo, aż  
długość będzie pewną stałą.
długość będzie pewną stałą.
 
</div>
</div>




Linia 57: Linia 64:
<math> O(\frac{n}{\log n})</math> procesorów.
<math> O(\frac{n}{\log n})</math> procesorów.


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


Podziel ciągi które trzeba scalić na segmenty długości log n.
Podziel ciągi które trzeba scalić na segmenty długości log n.
 
</div>
</div>


==Zadanie 6==
==Zadanie 6==
Linia 66: Linia 75:
Jaka jest asymptotycznie liczba operacji w układzie arytmetycznym odpowiadającym algorytmowi PrefSums1.
Jaka jest asymptotycznie liczba operacji w układzie arytmetycznym odpowiadającym algorytmowi PrefSums1.


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


<math> O(n \log n) </math>
<math> O(n \log n) </math>
 
</div>
 
</div>


==Zadanie 7==
==Zadanie 7==
Linia 76: Linia 86:
Jaka jest asymptotycznie liczba operacji w układzie arytmetycznym odpowiadającym algorytmowi PrefSums2.
Jaka jest asymptotycznie liczba operacji w układzie arytmetycznym odpowiadającym algorytmowi PrefSums2.


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


<math> O(n ) </math>
<math> O(n ) </math>
</div>
</div>

Wersja z 10:37, 11 wrz 2006

Zadanie 1

Dany jest ciąg nawiasów otwierających i zamykających jednego rodzaju: ( lub ). Sprawdzić czy jest to ciąg poprawny nawiasowo w czasie log n z pracą liniową.

Rozwiązanie


Zadanie 2

Dany jest ciąg nawiasów okrągłych lub kwadratowych ( , ), [ , ], sprawdzić czy jest to ciąg poprawny nawiasowo w czasie log n z pracą liniową.

Rozwiązanie


Zadanie 3

Uzasadnić dlaczego algorytm $A_{k+1}$ liczenia minimum w tablicy n-elementowej działa w czasie O(1) używając Pk+1(n)) procesor"ow, gdzie Pk(n)=n1+ϵk,ϵk = 12k1 Zakładamy, że dwa procesory nie mogą próbować wpisać jednocześnie dwie różne wartości w to samo miejsce (ale mogą jednocześnie tę samą wartość).

Rozwiązanie

Zadanie 4

Oblicz na CRCW PRAM minimum w tablicy n-elementowej w czasie O(log log n) używając O(n / log log n) procesorów. Zakładamy, że dwa procesory nie mogą próbować wpisać jednocześnie dwie różne wartości w to samo miejsce (ale mogą jednocześnie tę samą wartość).

Rozwiązanie


Zadanie 5

Zmień algorytm ParallelMerger tak aby scalał dwa ciągi w czasie logarytmicznym używając tylko O(nlogn) procesorów.

Rozwiązanie

Zadanie 6

Jaka jest asymptotycznie liczba operacji w układzie arytmetycznym odpowiadającym algorytmowi PrefSums1.

Rozwiązanie

Zadanie 7

Jaka jest asymptotycznie liczba operacji w układzie arytmetycznym odpowiadającym algorytmowi PrefSums2.

Rozwiązanie