Complejidad de Algoritmos

Páginas: 8 (1946 palabras) Publicado: 16 de octubre de 2013
© DLSI (Univ. Alicante)

Tema 1. La eficiencia de los algoritmos

TEMA 1
La eficiencia de los algoritmos

PROGRAMACIÓN Y ESTRUCTURAS DE
DATOS

© DLSI (Univ. Alicante)

Tema 1. La eficiencia de los algoritmos

La eficiencia de los algoritmos
1. Noción de complejidad
Complejidad temporal, tamaño del problema y paso

2. Cotas de complejidad
Cota superior, inferior y promedio

3.Notación asintótica
Ο, Ω, Θ

4. Obtención de cotas de complejidad

2

1

© DLSI (Univ. Alicante)

Tema 1. La eficiencia de los algoritmos

1. Noción de complejidad
DEFINICIÓN

Cálculo de complejidad: determinación de dos parámetros o
funciones de coste:
Complejidad espacial : Cantidad de recursos espaciales ( de
almacén) que un algoritmo consume o necesita para su
ejecuciónComplejidad temporal : Cantidad de tiempo que un algoritmo
necesita para su ejecución

Posibilidad de hacer
Valoraciones
el algoritmo es: “bueno”, “el mejor”, “prohibitivo”

Comparaciones
el algoritmo A es mejor que el B
3

© DLSI (Univ. Alicante)

Tema 1. La eficiencia de los algoritmos

1. Noción de complejidad
COMPLEJIDAD TEMPORAL

Factores de complejidad temporal:

ExternosLa máquina en la que se va a ejecutar
El compilador: variables y modelo de memoria
La experiencia del programador

Internos
El número de instrucciones asociadas al algoritmo

Complejidad temporal : Tiempo(A) = C + f (T)

C es la contribución de los factores externos
(constante)
f(T) es una función que depende de T (talla o
tamaño del problema)
4

2

© DLSI (Univ. Alicante)Tema 1. La eficiencia de los algoritmos

1. Noción de complejidad
COMPLEJIDAD TEMPORAL

Talla o tamaño de un problema:
Valor o conjunto de valores asociados a la entrada del
problema que representa una medida de su tamaño
respecto de otras entradas posibles

Paso de programa:
Secuencia de operaciones con contenido semántico cuyo
coste es independiente de la talla del problema
Unidad demedida de la complejidad de un algoritmo

Expresión de la complejidad temporal:
Función que expresa el número de pasos de programa que
un algoritmo necesita ejecutar para cualquier entrada
posible (para cualquier talla posible)
No se tienen en cuenta los factores externos
5

© DLSI (Univ. Alicante)

Tema 1. La eficiencia de los algoritmos

1. Noción de complejidad
COMPLEJIDADTEMPORAL. Ejemplos

int ejemplo1 (int n)
{
n+ = n;
return n;
f
}

(ejemplo1) = 1 pasos

int ejemplo2 (int n)
{
int i;
for (i=0; i ≤ 2000; i++)
n+ = n;
return n;
f
}

(ejemplo2) = 1 pasos

6

3

© DLSI (Univ. Alicante)

Tema 1. La eficiencia de los algoritmos

1. Noción de complejidad
COMPLEJIDAD TEMPORAL. Ejemplos

int ejemplo3 (int n)
{ int i, j;
f (ejemplo3)
j = 2;for (i=0; i ≤ 2000; i++)
j=j*j;
for (i=0; i ≤ n; i++)
{
j = j + j;
j = j - 2;
}
return j;
}

= 1 + 1 · (n + 1) pasos

7

© DLSI (Univ. Alicante)

Tema 1. La eficiencia de los algoritmos

1. Noción de complejidad
COMPLEJIDAD TEMPORAL. Ejemplos

int ejemplo4 (int n)
{ int i, j,k;
f (ejemplo4)
k = 1;
for (i=0; i ≤ n; i++)
for (j=1; j ≤ n; j++)
k = k + k;
return k;
}= 1 + 1 · n · (n + 1) pasos

int ejemplo5 (int n)
{ int i, j,k;
k = 1;
for (i=0; i ≤ n; i++)
for (j=i; j ≤ n; j++)
k = k + k;
return k;
f (ejemplo5)
}

= 1 + Σi=0..n(Σj=i..n 1) pasos
8

4

© DLSI (Univ. Alicante)

Tema 1. La eficiencia de los algoritmos

1. Noción de complejidad
CONCLUSIONES
Sólo nos ocuparemos de la complejidad temporal
Normalmente son objetivoscontrapuestos
(complejidad temporal complejidad espacial)
Cálculo de la complejidad temporal:
a priori: contando pasos
a posteriori: generando instancias para distintos valores y
cronometrando el tiempo
Se trata de obtener la función. Las unidades de medida (paso, sg,
msg, ...) no son relevantes (todo se traduce a un cambio de escala)
El nº de pasos que se ejecutan siempre es función del tamaño...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Complejidad Algoritmica
  • Complejidad de algoritmo
  • Algoritmo y su complejidad
  • Complejidad de Algoritmos
  • complejidad de algoritmos
  • Complejidad algoritmos
  • Complejidad de algoritmos
  • Complejidad Algoritmica

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS