c.d.
SPIS TRESCI
ZŁOŻONOSĆ
Ta grupa zadań dotyczy głównie obliczania złożonosci czasowej i pamięciowej
konkretnych algorytmów, porównywania złożonosci różnych rozwiązań tego samego
problemu, porównywanie i szacowanie rzędów funkcji, własnosci notacji asymptotycznej.
Kilka pytań dytyczy problemów trudnych i zupełnych.
- Które z następujących własnosci są prawdziwe i dlaczego?
- n3 + log nn = Omega(n3)
- 2 log n = Teta(n)
- Suma{0< i <n : log i} = O(n)
- n2 + n3 = Teta(n3)
- log(n n) = O(n)
- log Suma{0< i <n : i} = Omega(n)
- O(nlog(n)) = (n+log(n))2
- Teta(n3) = log(n!)
- Omega(xn) = Suma(xi : 0<i<n)
gdzie x >1
- Niech będzie dany graf spójny G = <V, E>, gdzie card(V)=
n card(E)= m. Koszt algorytmu Kruskala znajdowania minimalnego drzewa rozpinającego
ma rzad taki sam jak funkcja:
- n3
- m2* log n
- n * log m
- m * log m
- inna odpowiedź (jaka?)
- Elementy zbioru X={xn, xn-1 , ...x1
} zostały włożone do stosu S w kolejnosci xn, xn-1
, ...x1. Zaznaczyć własciwą liczbę operacji push i pop w procesie
usuwania elementu xi z S.
- 2*(i-1) push + i pop
- 2*(n-i) push + 1 pop
- (i-1) push + i pop
- inna odpowiedz (jaka?)
- Która z wymienionych równoci jest zawsze prawdziwa, jeżeli wiadomo,
że g(n)=O(f) i h(n)=O(f)
- g(n) + h(n) = O(f)
- g(n) * h(n) = O(f)
- f(n) + g(n) = O(f)
- Uporządkować następujące funkcje ze względu na ich rosnący rząd
wielkosci:
f1(n) = abs(sin2(n)), f2(n) = lg(n2), f3(n) = lg(n!)
, f4(n) = 0.001 n2.
Odpowiedź uzasadnić.
- Ciąg Fibonacci'ego definiuje się rekurencyjnie następująco:
f(1)=f(0)=1, f(n+1) = f(n) + f(n-1) pour n>0
c.d.
SPIS TRESCI
ALGORYTMY
Zadania zgromadzone w tej częsci służa przypomnieniu algorytmów poznanych
w trakcie wykładu (Algorytmy realizujące operacje wkładania, szukania,
usuwania elementu ze zbioru reprezentowanego przy pomocy różnych struktur
danych. Algorytmy wyszukiwania minimum i maksimum, elememtu 2giego co do
wielkosci, elementu k-tego co do wielkosci. Algorytmy sortowania przez porównywanie
elementów: inserion-sort, selection-sort, Shell-sort, quick-sort
Sortowanie z użyciem kolejki priorytetowej. Sortowanie przez rozrzucanie.
Sortowanie zewnętrzne. Algorytmy geometryczne: otoczka wypukła, przecinanie
odcinków, najbliżej położone punkty.Algorytmy wyszukiwania wzorca : sekwencyjny,
Rabina-Karpa, Boyer-Moor.)
lub konstruowania i implementacji nowych algorytmów, szacowania ich
kosztów oraz ich analizy.
- Zaproponuj algorytm wyszukiwania wszystkich elementów z danego
drzewa BST, które należą do pewnego danego przedziału (a,b). Oszacuj koszt
czasowy tego algorytmu.
- Napisać algorytm wyliczania częsci całkowitej logarytmu przy podstawie
3 z dowolnej liczby naturalnej.
- Podać specyfikację tego algorytmu.
- Zapisać algorytm używając czterech podstawowych instrukcji.
przypisania, składaniam instrukcji warunkowej, instrukcji iteracji.
- Uzasadnić całkowitą poprawnosć algorytmu względem podanej specyfikacji.
- Okreslić rząd funkcji kosztu zaproponowanego algorytmu.
- Stosując zasadę "dziel i zwyciężaj" zaproponuj algorytm wyznaczania
miejsca zerowego funkcji ciągłej f(x) w przedziale (a,b) z zadaną dokładnoscią
eps.
SPIS TRESCI
INNE
Zadania zebrane w tej częsci dotyczą pojęć o charakterze podstawowym,
które nie mieszczą się w poprzednich działach lub mają charakter teoretyczny.
Dotyczą podstawowych pojęć takich jak:
Operacja, bijekcja, homomorfizm, izomorfizmstruktur danych.
Relacja, porządek, równoważnosć, kongruencja.
Sumy postępu arytmetycznego i geometrycznego.
Rozwiązywanie równań rekurencyjnych.
Spełnianie i prawdziwosć formuł.
Obliczalnosć. Teza Churcha.
Rozstrzygalnosć, Nierozstrzygalnosć .
- Podać przykład formuły spełnionej w strukturze liczb naturalnych,
która nie jest z tej strukturze prawdziwa.
- Podać przykład formuły, która jest prawdziwa w strukturze stosów
i która jest falsyfikowalna w strukturze kolejek.
- Czy prawdziwe jest zdanie: ponieważ każdy kopiec jest drzewem
binarnym, to każda własnosć przysługująca kopcowi jest prawdziwa w strukturze
drzew binarnych.
- Ułóż równanie rekurencyjne opisujące funkcję kosztu czasowego
algorytmu MergeSort.
- Czy relacja r zdefiniowana następująco w zbiorze programów jest
czy nie jest relacją równoważnosci?(P1, P2 - dwa dowolne programy)
"P1 r P2 wtedy i tylko wtedy gdy wyniki programów są takie same dla tych
samych danych początkowych".
SPIS TRESCI
Przykladowe pytania na egzamin ustny.
1
2
3
4
5
6
1.
(a) Czy następująca formula jest zawsze prawdziwa?
((- empty(delete(p)) & p=insert(e,p)) => mb(e,p)) => (-empty(delete(p))
=> (p=insert(e,p) => mb(e,p))
(b) Omówić algorytmy wyszukiwania i wkładania elementu do B-drzewa.
Oszacować złożonosć tych algorytmów.
2.
(a) Podać pełną specyjfikacją abstrakcyjnej struktury stosów. Czy następująca
struktura danych jest stosem?
(b) Opisać ogólną postać algorytmu sortowania z użyciem kolejki priorytetowej.
Jakie są koszty tego algorytmu jesli kolejka jest zaimplementowana jako
2-3 drzewo.
3.
(a) Podać pełną specyfikację abstrakcyjnej struktury kolejek.Czy następująca
struktura danych jest kolejką.
(b) Narysować drzewa BST, AVL i kopiec, wiedząc, że powstały one przez
włożenie kolejno elementów e1, e2,e3,...,e5 do drzewa początkowo pustego,
oraz, że e1,...e5 tworzą ciąg rosnący.
4.
(a) Sformułować pojecie częsciowej poprawnosci algorytmu.Uzasadnić, że następujący
algorytm jest poprawny ze względu na nastepujacą specyfikację.
(b) Podać przykład algorytmu działającego w oparciu o zasadę "dziel i zwyciężaj".
5.
(a) Sformułować twierdzenie o reprezentacji dla stosów.
(b) Podać dwa różne algorytmy wyszukiwania elementu w ciągu uporządkowanym.Porównać
koszty.
6.
(a) Zaprezentować idee metody Floyda-Hoare badania poprawnosci algorytmu.
Zastosować tę metodę do dowodu czesciowej poprawnosci następującego algorytmu
ze względu na specyfikację WP= x<y ,WK=? :
( x := x+1; y := y*z).
(b) Podać co najmniej dwa różne algorytmy równoszesnego wyszukiwania min
i max. Jakie jest ograniczenie dolne złożonosci tego problemu?.