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 15: Linia 15:




'''Zadanie 2'''
=='''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
Dany jest ciąg nawiasów okrągłych lub kwadratowych ''('' , '')'', ''['' , '']'', sprawdzić czy jest to ciąg poprawny nawiasowo w czasie log n
Linia 22: Linia 22:




Zadanie ?
==Zadanie 3==


Uzasadnić dlaczego algorytm  $A_{k+1}$ liczenia minimum w tablicy n-elementowej  działa w czasie O(1) używając  <math> P_{k+1}(n))</math>
Uzasadnić dlaczego algorytm  $A_{k+1}$ liczenia minimum w tablicy n-elementowej  działa w czasie O(1) używając  <math> P_{k+1}(n))</math>
Linia 38: Linia 38:




Zadanie ?
==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.
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.
Linia 52: Linia 52:




Zadanie
==Zadanie 5==


Zmień algorytm ParallelMerger tak aby scalał dwa ciągi w czasie logarytmicznym używając tylko
Zmień algorytm ParallelMerger tak aby scalał dwa ciągi w czasie logarytmicznym używając tylko
Linia 62: Linia 62:




Zadanie.
==Zadanie 6==


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.
Linia 72: Linia 72:




Zadanie.
==Zadanie 7==


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.

Wersja z 10:34, 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ą.


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ść).


Rozwiazanie

max{(nnα)1+ϵk, nnα×(nα)1+ϵk} = O(Pk+1(n))

gdzie α=12k+1


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ść).


Rozwiazanie

Dzielimy tablicę na kawałki długości n. Z otrzymanymi kawałkami robimy to samo, aż długość będzie pewną stałą.


Zadanie 5

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

Rozwiązanie.

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


Zadanie 6

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

Rozwiązanie.

O(nlogn)


Zadanie 7

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

Rozwiązanie.

O(n)