Calcolo della complessità
Di un'algoritmo si possono trovare le complessità e , ma quella di interesse è .
Tra i costrutti, le complessità sono di:
-
Sequenza:
Block1 // O(f(n)) Block2 // O(g(n))
-
If else:
if Cond then // O(f(n)) Block1 // O(g(n)) else Block2 // O(h(n))
-
Cicli for:
for i = 1 to k for j = 1 to m Block // O(f(n))
-
Ciclo while:
while Cond do // O(f(n)) Block // O(g(n))
dove è il massimo numero di iterazioni per una certa .
Per esempio, l'algoritmo
MyAlgorithm(int n) -> int
int a, i, j
if n > 1 then // 1
a = 0 // 1
for i = 1 to n // n
for j = 1 to n // n
a = (a + i) * j + a/2 // 1
for i = 1 to 16 // 16
a = a + MyAlgorithm(n/4) // T(n/4)
return a // 1
else
return 0 // 1
avrà una complessità .