This is an old revision of the document!
Recurențe
1. Folosiți Teorema Master pentru a rezolva următoarele recurențe:
- $ T_1(n) = 4T_1(n/4) + 1$
- $ T_3(n) = 4T_3(n/2) + n^2$
- $ T_2(n) = 8T_2(n/2) + 2n^2$
2. Fie următorul algoritm de căutare a unei valori v
într-un array sortat arr
:
int search(int arr[], int lo, int hi, int v) { int mid = (lo + hi) / 2; if (arr[mid] == v) return mid; if (lo == hi) return -1; if (arr[mid] > v) return search(arr, lo, mid, v); else return search(arr, mid, hi, v); }
- Determinați relația de recurență a algoritmului de căutare prezentat.
- Demonstrați recurența utilizând Teorema Master.
- Demonstrați recurența utilizând Metoda Arborilor.
- Demonstrați recurența utilizând Metoda Substituției.
3. Folosiți cele 3 metode (metoda arborilor, metoda substituției, teorema master) pentru a rezolva recurențele:
- $ T_a(n) = 2T_a(n-1) + 1$
- $ T_b(n) = T_b(n-1) + 1$
- $ T_c(n) = 2T_c(n/2) + \log(n)$
- $ T_d(n) = T_d(n/9) + T_d(8n/9) + n$
- $ T_e(n) = T_e(2n/3) + 1$
- $ T_f(n) = T_f(\sqrt{n}) + 1$ (hint: substituiți $ n$ cu $ 2^k$)
- $ T_g(n) = 2T_g(\sqrt{n}) + n$ (hint: substituiți $ n$ cu $ 2^k$)
- $ T_h(n) = \sqrt{n}T_h(\sqrt{n}) + n$ (hint: substituiți $ n$ cu $ 2^k$)
4. Rezolvați următoarea recurență folosind metoda substituției: $ T(n) = 2 T(\frac{n}{2}) + 1$ .
5. Rezolvați următoarea recurență folosind metoda arborilor: $ T(n) = T($ $ n \over 4$ $ ) + T($ $ 3n \over 4$ $ ) + n$ .