asd zestaw zad 08

background image

Zestaw zadań.

1. Określić niezmienniki pętli i dokonaj analizy poprawności (częściowej, całkowitej)

algorytmu, liniowego przeszukiwania tablicy ze względu na wystąpienie elementu o
kluczu x. Wyznaczyć wrażliwość pesymistyczną i oczekiwaną algorytmu.

2. Dokonać analizy poprawności algorytmu Euklidesa wyznaczania WD (ajwiększego

Wspólnego Dzielnika) dwóch liczb naturalnych a, b. Do zbudowania niezmienników
iteracji skorzystaj z następujących własności: WD(a,b)=WD(a-b,b); WD(a,b)=
WD(b,a); WD(a,a)=a

3. Zbudować stabilny algorytm sortowania „przez wybór” oraz algorytm sortowania

„bąbelkowego” o optymistycznej złożoności obliczeniowej.

4. Znaleźć rekurencyjnie minimalny i maksymalny element tablicy. Zastosować technikę

„dziel i rządź”. Dokonać analizy złożoności obliczeniowej algorytmu.

5. Obliczyć rekurencyjnie wartość log(n!).

6. Wyznaczyć wartość n-tego wyrazu ciągu Fibonacciego metodą programowania

dynamicznego. Wyznaczyć złożoność obliczeniową algorytmu.

7. Zbudować rekurencyjny algorytm, który dla danego znaku sprawdzi czy występuje w

danym napisie, obliczy liczbę jego wystąpień oraz usunie jego wystąpienia.

8. Wypełnić „po spirali” dwuwymiarową tablicę wartościami tworzącymi ciąg arytmetyczny

o zadanym wyrazie początkowym i zadanej różnicy ciągu. Rozpatrzyć przypadek
wypełnienia zaczynając od dowolnego elementu skrajnego oraz środkowego. Zbudować
algorytm iteracyjny i rekurencyjny.

9. Sprawdzić rekurencyjnie, czy określone słowo i zdanie są palindromami.

10. Zaprojektować algorytm działający w czasie O(n), który dla danego zbioru S parami

różnych n kluczy oraz liczby dodatniej k<=n wyznacza k liczb w S, które są najbliższe
medianie zbioru S.

11. Zastosować rekurencję do wygenerowania wszystkich n! permutacji zbioru X={1, 2, ...,

n} w porządku leksykograficznym (antyleksykograficznym).

12. Zbudować algorytm rekurencyjny do rozwiązania tzw. problemu ”wież Hanoi”.

13. Metodą podstawiania rozwiązać równania rekurencyjne. Za pomocą indukcji udowodnić

ich poprawność:

T(n) = 2T(n-1) + 1

dla n ≥ 2,

T(1) = 2

T(n) = 2T(n-1) + n

dla n > 1,

T(1) = 1

14. Rozwiązać równania rekurencyjne zakładając, że T(1)=1, natomiast dla n>1zachodzi:

T(n) = 2T(n/2) + (n-1)
T(n) = nT(n-1) + n!
T(n) = 8T(n/2) + n

3

background image

15. Uporządkować pod względem tempa wzrostu następujące funkcje:

16. Dla rekurencyjnego algorytmu sortowania „szybkiego” (Quick_sort) podać i rozwiązać

równanie rekurencyjne. Określić złożoność pesymistyczną i optymistyczną algorytmu.

17. Udowodnić, że złożoność obliczeniowa procedury podziału (Partition) algorytmu

Quick_sort jest rzędu O(n).

18. Wykazać, że złożoność algorytmu Quick_sort wynosi Θ(nlgn), gdy wszystkie elementy

tablicy mają taką samą wartość oraz Θ(n

2

), gdy uporządkowanie początkowe jest

odwrotne względem kryterium sortowania.

19. Udowodnić, że złożoność obliczeniowa algorytmu sortowania kopcowego Heap_sort

wynosi O(nlgn).

20. Wykazać, że n-elementowy kopiec ma wysokość lgn oraz, że istnieje co najwyżej n/2

h+1

węzłów o wysokości h.

21. Przedstawić tablicową reprezentację kopca. Utworzyć algorytmy (oraz podać ich

złożoność obliczeniową) do realizacji operacji: Insert, DeleteMax, Max.

22. Utworzyć procedury poprawiające kopiec „w dół” i „w górę”.

23. Zbudować algorytm sortowania przez scalanie (Merge_sort) i zastosować do

posortowania elementów tablicy. Podać równanie rekurencyjne i złożoność obliczeniową
algorytmu.

24. Przedstawić algorytm o liniowej złożoności obliczeniowej, który dwa ciągi liczb

posortowanych niemalejąco łączy w jeden posortowany ciąg.

25. Zastosować ideę algorytmu Shella do posortowania elementów tablicy, wykorzystać

elementy algorytmu Insert_Sort. Przedstawić analizę złożoności obliczeniowej algorytmu
sortowania Shella.

26. Dokonać analizy algorytmu sortowania Shella pod kątem stabilności.

27. Wstawić na n-tą pozycję listy nowy element. Założyć można, że lista posiada co najmniej

n elementów.

28. Pojedyncza, niepusta lista jednokierunkowa zakończona jest cyklem. Wyznaczyć ilość

elementów w cyklu.

29. Wyznaczyć liczbę elementów listy cyklicznej, mając wskaźnik do jednego z elementów

listy.

30. Dwie pojedyncze listy jednokierunkowe zawierają niepowtarzające się liczby naturalne

posortowane rosnąco. Przekształcić te listy w jedną listę, której elementy są posortowane
rosnąco. Listy wejściowe są usuwane z pamięci.

31. W liście jednokierunkowej usunąć powtarzające się elementy. Założyć można, ze lista jest

niepusta.

32. W dwuwymiarowej tablicy większość elementów jest równa zero. Utworzyć strukturę

dynamiczną (wskaźnikową) przechowującą w sposób efektywny (pod względem
wykorzystania pamięci) zawartość tablicy.

;

;

;

;

lg

/

;

lg

;

;

2

;

;

lg

lg

lg

)

2

/

3

(

)

2

/

(

2

2

n

n

n

n

n

n

n

n

n

n

n

n

n

background image

33. Lista jednokierunkowa reprezentuje wielomian zadanego stopnia o współczynnikach

całkowitych. Elementy na liście ułożone są według rosnących potęg. Obliczyć różnicę
dwóch wielomianów zadanego stopnia i znaleźć reprezentację listową.

34. Wyznaczyć rekurencyjnie długość listy.

35. Dla danych wskaźników x, y wskazujących elementy dwóch rozłącznych list cyklicznych

wstawić listę wskazywaną przez y do listy po elemencie wskazywanym przez x.

36. W liście dwukierunkowej zwolnić każdy parzysty węzeł.

37. Złączyć dwie posortowane listy wykorzystując pojęcie wartownika.

38. Odwróć kolejność elementów listy dwukierunkowej.

39. Ustawić elementy na stosie w porządku rosnącym, używając jednego pomocniczego stosu

i kilku zmiennych.

40. Podać rekurencyjne algorytmy przechodzenia drzewa BST w porządku preorder, inorder

oraz postorder.

41. Utworzyć drzewo BST z uporządkowanej tablicy.

42. Wyznaczyć liczbę węzłów w drzewie binarnym, liczbę liści i wysokość drzewa.

43. Usunąć wszystkie liście z drzewa binarnego.

44. Zbudować algorytm, który dla danej pary kluczy przejrzy drzewo BST i wypisze

wszystkie klucze znajdujące się między nimi.

45. Przekształć drzewo BST w linię oraz linię w drzewo zrównoważone.


Wyszukiwarka

Podobne podstrony:
Zestaw I zad,18
Zestaw 9, Zad
pomiary zestaw egzamin 08
Zestawy zad zad05052011 id 9325 Nieznany
asd zastaw zad niest
Zestaw 3, Zad
2009, klucz zad 08 092 u
wdi zestawy zad inf
2009 klucz zad 08 092 uid 26640
Zestawy zad, ZiB
AE - zestaw zad 1, Analiza Ekonomiczna
BOTANIKA WYK+üAD 08, Organizmy zarodnikowe i rośliny nasienne
Zestawy zad zad14042011
Zad. I.08, MiBM WIP PW, inżynierskie, 4 semestr, TERTE, I kolokwium
PBS zad 08 snmppdf
Zestaw 6, Zad
Zestaw 4, Zad
Zestaw I Zad IV
2009 zad 08 092

więcej podobnych podstron