Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

Tema 1: Análisis de algoritmos

Objetivo: predecir el comportamiento del algoritmo.

Aspectos cuantitativos:

  • tiempo de ejecución
  • cantidad de memoria

Se dispone de una medida de la eficiencia teórica y no exacta (utilizada para aproximar, clasificar y comparar algoritmos).

Acotar T(n), siendo n el tamaño del problema (a veces, la entrada). Cuando n → ∞ se considera comportamiento asintótico.

T(n) = O(f(n)) → f(n) es una cota superior, que crece más deprisa que T(n).

Notación asintótica

Establece un orden relativo entre las funciones, comparando la tasa de crecmiento.

Cota superior: O

Big O Definition

Cota inferior: Ω

Big Ω Definition

Cota exacta: Θ

Big Ω Definition

Se omite por simplicidad que las tres constantes tienen que ser estrictamente superiores a 0.

Reglas prácticas

Cálculo de f(n)

Si T(n) es un polinomio de grado k, se tiene una cota exacta Θ(n^k).

Theta of poly degree K

Otra utilidad, la siguiente:

Little o power of function

Operaciones sobre notación asintótica

La suma equivale al máximo de los sumandos, el producto se opera como producto normal.

Big O operations

Gráficos

Comparación de las posibles cotas.

Comparison between bounds

Cotas comunes:

Common bounds

Gráfico de las cotas comunes:

Common bounds chart

Resolución de recurrencias divide y vencerás

Para resolver recurrencias de divide y vencerás podemos ayudarnos de la siguiente regla.

Divide and conquer: Recurrence solution