Zaawansowane algorytmy i struktury danych/Ćwiczenia 13: Różnice pomiędzy wersjami
Nie podano opisu zmian |
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ą.
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 procesor"ow, gdzie 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
gdzie
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 . 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 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.
Zadanie 7
Jaka jest asymptotycznie liczba operacji w układzie arytmetycznym odpowiadającym algorytmowi PrefSums2.
Rozwiązanie.