Ricorrenze e teorema master
T(n) = 4 T(n/2) + na = 4 b = 2 β = 1α = 2 β = 1, α > βα = logb(a) = log2 4 = 2T(n) = O(nα)
T(n) = 4 T(n/2) + n2a = 4 b = 2, α = log2 4 = 2 β = 2, α = βT(n) = O(n2 log2 n)
T(n) = 4 T(n/2) + n2/log nT(n) = 4 (4 T(n/4) + (n2/log(n/2)) + n2/log n= 16 T(n/4) + 4 n2/log(n/2) + n2/log n= 16 T(n/4) + n2/log(n/2) + n2/log(n)= 22k T(n/2k) + n2 Σi=0K-1 1 / logb(n/2i)n / 2k = 1 n = 2k K = log n
Esempi di ricorrenze
- T(n) = 4T(n⁄2) + na = 4 b = 2 β = 1α = logb(a) = 2d > βT(n) = O(nd)
- T(n) = 4T(n⁄2) + n2a = 4 b = 2α = log2 a = 2β = 2 α = βT(n) = O(n2 log2 n)
- T(n) = 4T(n⁄2) + n2⁄log nT(n) = 4 (4 T(n⁄4) + n2⁄log(n⁄2) + n2⁄log n)= 16 T(n⁄4) + 4 n2⁄log(n⁄2) + n2⁄log n= 16 T(n⁄4) + n2⁄log(n⁄2) + n2⁄log(n)= 22k T(n⁄2k) + n2 k-1n2k = 1 n = 2kK = log nq = 2log n= n2 + n2 k-1∑i=0 1/log n - log 2i= n2 + n2 ∑k-log 2i 1= n2 + n2 ∑k-i 1O(n2 log k) = O(n2 log log n)
- T(n) = 7 T(n/2) + n2a = 7 b = 2 d = logb a = log2 7 β = 2d > βT(n) = O(nlog2 7)
Ricorrenza T'(n)
T'(n) = a T'(n/a) + n2T'(n) = O(nlog2 a)a = f - εlog2 7 = log4 49T'(n) = ?log4a2n log4a2 ? n2log4a = 2 a = 16n log4a2 < n2n log4a2 = n2se a < 16: T'(n) = Θ(n2)se a = 16: T'(n) = n2log nse a > 16: T'(n) = O(n log4a2)
Espansione della ricorrenza
T(n) = 2 T(n/2) + O(n) T(1) = O(1)
T(n) = 2(2 T(n / 4) + O(n / 2)) + O(n)= 4 T(n / 4) + 2 O(n / 2) + O(n)= 2k T(n / 2k) + 2 O(n / 2) + 2 O(n / 20)= n / 2k = 1 n = 2k k = log2n= 2k T(n / 2k) + ∑ℓ=0k-12ℓ O(n / 2ℓ)k = log2n= 2log2nT(1) + log2n - 1 ∑i=02iO(n/2i)= 2log2n(O(1) + n ∑ O(2i/2i))= 2log2n(O(1) + n ∑i=0log2n - 1 O(1))= n O(1) + n O(log n)= O(n) + O(n log n) = O(n log n)
Seconda espansione
2) T(n) = 3 T(n/2) + O(n) T(1) = O(1)
T(n) = 3(3 T(n/4) + O(n/2)) + O(n)= 3 T(n/4) + 3 O(n/2) + O(n)= 3kT(n/2k) + 3 O(n/2) + O(n)=...3kT(n/2k) + k-1∑i=03iO(n/2i)k = log2n= 3log2nO(1) + ∑i = 0log2h - 13iO(bi/2i)= 3log2nO(1 + h∑i = 0log2h - 1O(3i/2i))
3log2n = 3 = 3log3n = nlog33= O(nlog23) + n ∑ O(3i/2i)∑i = 0logn-1(3/2)i = (3/2)log2n - 1/3/2 - 1 = 2((3/2)log2n - 1)(3/2)log2n = 3log3n/2log2n = n/hO(nlog31) = O(nlog23)= O(nlog23) + O(nlog33) = O(nlog33)
T(n) = aT(n/b) + na = 9 b = 3 d = log3a = 2 β = 1d > β T(n) = O(n2)
-
Prove Fondamenti di informatica, 2021-2022: MIPS avanzato e complessità liste
-
Didattica Speciale – Complessità persona
-
L'aumento della complessità II
-
L'aumento della complessità