Tema 3 - Eficiencia

Anxo López Rodríguez

Tema 3 - Eficiencia

Programación II - 1º Grao en Inteligencia Artificial

Anxo López Rodríguez

Escola Superior de Enxeñaría Informática - Universidade de Vigo


Tema 3: Análise da eficiencia de algoritmos

1. Notación asintótica

É representada cunha O maiúscula (Big-Oh) e representa o límite superior dunha función (o peor dos casos). É unha asíntota superior que garante un límite para o peor caso. Nunca será superado (agás por unha constante multiplicativa).

As súas propiedades son:

A orde é a potencia de maior grado, por exemplo: $P(n) = 5n^3 + 2n^2 + 9n + 1$ é $O(n^3)$.

Os tipos de notacións O son:

Función Notación O
Constante $O(1)$
Logarítmica $O(\log n)$
Lineal $O(n)$
Logarítmica x Lineal $O(n \log n)$
Cuadrática $O(n^2)$
Cúbica $O(n^3)$
Exponencial $O(a^n)$

Os máis habituais son:

Exemplo

```python list1 = [0, 1, 2] list2 = [10, 11, 12] list3 = []

O bucle externo execútase n veces (len(list2))

for i in range(0, len(list2)): # O bucle interno execútase m veces (len(list1)) for j in range(0, len(list1)): # As operacións internas son O(1) list3.append(list1[j] + list2[i])

print(“Added:”, list3[len(list3) - 1])