aplikacja Matura google play app store

zadania z informatyki - Analiza algorytmów

Zadanie: 1 2 3 4 5 6 7 8 9 10
Zadanie 7.
Wiązka zadań Scalanie
Rozważmy następujący algorytm, który jako dane przyjmuje tablicę n-elementową, gdzie n jest potęgą dwójki:

Dane:
tablica liczb rzeczywistych T[1..n], gdzie n =2m, a m jest liczbą całkowitą nieujemną

funkcja uporządkuj(T[1..n]):
jeżeli n = 1
zwróć T[1..n] i zakończ
kn/2
A[1..k] ← uporządkuj(T[1 .. k])
B[1..k] ← uporządkuj(T[k+1 .. n])
zwróć scal(A, B) i zakończ

Funkcja scal(AB) dla danych dwóch tablic o rozmiarze k zwraca tablicę o rozmiarze 2k, powstałą przez połączenie tablic A i B w sposób uporządkowany, tj. od elementu najmniejszego do największego. Na przykład dla tablic A = [4,6,18,22] i B = [1,3,10,15] wywołanie scal(AB) zwróci tablicę [1,3,4,6,10,15,18,22].
Zadanie 7.1.
Spośród danych tablic wybierz te, które są zgodne ze specyfikacją algorytmu, a następnie podaj dla nich wynik jego działania.
T = [ 15, 11 ],
T = [ 1, 3, 8 ],
T = [ 8, 4, 2, 1],
T = [ 10, 15, 1 , 6, 9, 2, 5, 90 ].
Zadanie 7.2.
Funkcja uporządkuj jest funkcją rekurencyjną. Uzupełnij poniższe drzewo wywołań rekurencyjnych dla danej tablicy T = [8, 80, 90, 14, 3, 5, 20, 10, 5, 6, 90, 34, 11, 13, 56, 9].

Zadanie 7.3.
Załóżmy, że wywołanie procedury scal(A, B) dla dwóch tablic o długości k wykonuje 2k–1 kosztownych operacji (porównywania liczb). Podaj liczbę kosztownych operacji, jaka zostanie wykonana przez funkcję uporządkuj dla tablicy

T[1..16] = [8, 80, 90, 14, 3, 5, 20, 10, 5, 6, 90, 34, 11, 13, 56, 9].
Poprzednia strona Następna strona

źródło: CKE
Polityka Prywatności