M2

33_2b

687
Dane są dodatnia liczba całkowita n i tablica A[1..n] zawierająca n dodatnich liczb całkowitych.

Przeanalizuj działanie zapisanej poniżej funkcji f, której parametry p i q spełniają warunek 1 ≤ p ≤ q ≤ n.

f(p, q):
jeżeli p ≠ q
k ← (q – p + 1) div 2
dla i = 1, 2, ..., k:
zamień(A[p + i – 1], A[q – k + i ])
f(p, p + k – 1)
f(q – k + 1, q)

Uwaga:
• div jest operatorem oznaczającym część całkowitą z dzielenia
• operacja zamień(x, y) zamienia ze sobą wartości zmiennych x i y
• ← jest operatorem przypisania; x ← 2 oznacza, że wartość x staje się 2

Uzupełnij– podaj, ile razy po wywołaniu f(1, n) dla tablicy A[1..n] wykonana zostanie operacja zamień().
Uwaga: zauważ, że liczba wykonań operacji zamień nie zależy od zawartości tablicy A, a tylko – od jej długości.

n=4
n=8
n=16
n=256

Odpowiedź podaj dla n=256
gracze.txt gry.txt oceny.txt owoce.txt slowa.txt