Vous êtes sur la page 1sur 31

Complejidad de Algoritmos

Tema 5

Universidad de Huelva
Introduccin
Un algoritmo es una secuencia de instrucciones que
resuelve un problema
Puede tener diferentes implementaciones
Para comparar las diferentes formas (algoritmos) de
resolver un problema debe ser posible medirlos : Tiempo y
memoria .
La medida de la eficiencia requiere determinar la
complejidad de un algoritmo.

Universidad de Huelva
Factores del tiempo
Datos de entrada:la dimensin del vector a ordenar o el
tamao de las matrices a multiplicar
Calidad del cdigo generado por el compilador
Arquitectura del procesador (cisc , risc)
Complejidad intrnseca del algoritmo
Medidas:
A priori (Acotacin terica del algoritmo)
A posteriori (emprica o prctica) para un conjunto de datos y
para un ordenador concreto.

Universidad de Huelva
Factores del tiempo II
La unidad de tiempo no puede ser concreta, no existe un ordenador estndar
al que puedan hacer referencia todas las medidas.
T(n) el tiempo de ejecucin para una entrada de tamao n.

Principio de Invarianza
Dado un algoritmo y dos implementaciones suyas I1 e I2, que tardan T1(n) y
T2(n) segundos respectivamente, el Principio de Invarianza afirma que
existe una constante real c > 0 y un nmero natural n0 tales que para todo n
>= n0 se verifica que T1(n) <= cT2(n).

Nota : a priori un algoritmo de orden cuadrtico es mejor que uno de orden cbico
T1(n) = 10 el primero slo ser mejor que el segundo para tamaos de la entrada
superiores a 200.000.

Universidad de Huelva
Mejor ,peor y tiempo medio
El comportamiento de un algoritmo puede cambiar notablemente para
diferentes entradas (lo ordenados que se encuentren ya los datos a ordenar).
Se Estudian tres casos :
Caso peor: mayor nmero posible de instrucciones ejecutadas por el
algoritmo.
Caso mejor :menor nmero posible de instrucciones ejecutadas por el
algoritmo.
Caso medio (o general):nmero de instrucciones igual a la esperanza
matemtica de la variable aleatoria definida por todas las posibles trazas del
algoritmo para un tamao de la entrada dado, con las probabilidades de que stas
ocurran para esa entrada

Universidad de Huelva
Operaciones Elementales
Las Operaciones Elementales (OE): Medida bsica de complejidad de algoritmos
las operaciones aritmticas bsicas: +,-,/,*, ...
asignaciones a variables
los saltos (llamadas funciones y procedimientos, retorno desde ellos, etc.)
las comparaciones y operaciones lgicas (2 > 5 AND 5 == 3)

El acceso a vectores y matrices.

Ejemplos :
a++ 2 OE (=,+)
b = a*5 Vector[2*2] 5 OE (=,*,- ,[],*)
b += suma(a,b<2) 4 OE (=,+,salto,<)
C++ == E[1] AND B>3 6 OE (=,+,==,[],AND,>)

Universidad de Huelva
Universidad de Huelva
Anlisis del caso
caso mejor :lnea (1) y (2) slo la primera mitad
de la condicin: 2 OE
(expresiones se evalan de izquierda a derecha, y con
cortocircuito )
+ (5) a (7). T(n)=1+2+3=6.

caso peor:
(1)
bucle se repite n1 veces hasta que se cumple la
segunda condicin
(5) hasta lnea (7).
Cada iteracin del bucle compuesta (2) y (3), +
ejecucin adicional de la lnea (2)

Universidad de Huelva
Anlisis del caso II

Universidad de Huelva
Calculo de OE II
- CASE C OF v1:S1|v2:S2|...|vn:Sn END
T = T(C)+max{T(S1),T(S2),...,T(Sn)}.
- IF C THEN S1 ELSE S2 END
T = T(C) + max{T(S1),T(S2)}.
_ WHILE C DO S END
T = T(C) + (n iteraciones)*(T(S) + T(C)).
ojo tanto T(C) como T(S) pueden variar en cada iteracin
Para resto de sentencias iterativas (FOR,etc...) basta expresarlas como
un bucle WHILE.

Universidad de Huelva
Frmulas I
Sumatorias

1) La sumatoria de una suma es igual a la suma de las sumatorias:

a+b= a + b

2) Cuando el cuerpo de la sumatoria es independiente de los ndices, el valor es el nmero de valores


diferentes que toma el ndice multiplicado por el valor del cuerpo:

n 1

i =0
a = a.n

n 1 n 1 n 1 n 1

i =0
a + f(i) =
i =0
a+
i =0
f(i) = a.n +
i =0
f(i)

Universidad de Huelva
Frmulas II
3) Cuando el cuerpo de la sumatoria se puede expresar como una constante independiente de los ndices
multiplicada por una expresin, el valor es el valor de la constante multiplicada por la sumatoria de la
expresin:

n1 n1

af(i) = a f(i)
i=0 i=0

4) Suma de los valores de una progresin aritmtica: Ej:(1+2+3+4+5),(4+6+8+10) ,(2+5+8+11+14)


= incremento
a0 = primer elemento
an-1 = ltimo elemento
n = nmero de elementos
progresin aritmtica: an = a0 + n
n1

a = ((a +a
i=0
i i n-1)n)/2

El primer elemento ms el ltimo, multiplicado por el nmero de elementos y dividido por 2

Universidad de Huelva
Formulas III
5) Suma de los valores de una progresin geomtrica: Ej:(1+2+4+8+16), (2+6+18+54)
= razn
a0 = primer elemento
n = nmero de elementos
progresin geomtrica: an = a0 n
(r-1)(1 + r + ... + rn-1) = rn - 1
n 1 n 1 n 1

i =0
ai =
i =0
i
a0 = a0
i =0
i = a0( n-1)/( -1)

El primer elemento multiplicado por la razn elevada al nmero de elementos menos 1 y todo dividido
por la razn menos 1

Universidad de Huelva
Ejemplo Asignacin Suma Comparacin 3OE {
Asignacin Suma Comparacin 3OE {
Comparacion 4 OE
3 OE
4 OE
2 OE

Comp Inc 3OE}


Comp Inc 3OE}

Caso Mejor :la condicin ser falsa, no se


ejecuta (4)a (6). el bucle interno (ni) iteraciones

Caso Peor :la condicin ser verdadera, se


ejecuta (4)a (6). el bucle interno (ni) iteraciones

Universidad de Huelva
Ejemplo II Asignacin Suma Comparacin 3OE {
Asignacin Suma Comparacin 3OE {
Comparacion 4 OE
3 OE
4 OE
2 OE
Comp Inc 3OE}
Comp Inc 3OE}

Caso Medio :la condicin ser verdadera un


50% de las veces

Universidad de Huelva
Anlisis Bsqueda Mximo
Busca el mximo en un vector empezando en la
posicin i hasta la j, por lo que el tamao de la
entrada T(n) = T(j-i)
1 OE
Asignacin Suma Comparacin 3OE {
3 OE + P *1

Comp Inc 3OE}


1 OE

Universidad de Huelva
Anlisis Bsqueda Mximo II
Asignacin 1 OE
Asignacin Suma Comparacin 3OE {
3 OE + P *1
Asignacin 1 OE

Comparacin Incremento 3OE}


Salto 1 OE

Universidad de Huelva
Coste de Intercambio
Mtodo que intercambia dos contenidos en el vector
dadas sus posiciones.

temp:=a[i]; 2 OE
a[i]:=a[j]; 3OE 7 OE
a[j]:=temp ; 2 OE

Utilizaremos este mtodo y el de bsqueda de mximos y


mnimos en un vector para facilitar el anlisis de algoritmos de
ordenacin
Universidad de Huelva
Seleccin
En cada paso (i=1...n1) este mtodo busca el mnimo elemento del
subvector a[i..n] y lo intercambia con el elemento en la posicin i:

Asignacin Resta Comparacin 3OE {


Salto 1OE + Intercambia 7 OE Caso peor
Salto 1OE + PosMinimo
Comparacin Incremento 3OE}

Universidad de Huelva
Burbuja
Asignacin Resta Comparacin 3OE {
Asignacin suma Comparacin 3OE {
comparacin 4 OE
Salto 1OE + Intercambia 7 OE resta 1OE
Comparacin Incremento 3OE}
Comparacin Incremento 3OE}
}

Universidad de Huelva
Cota Superior O(f)
Asignacin Resta Comparacin 3OE {
Asignacin suma Comparacin 3OE {
comparacin 4 OE
alto 1OE + Intercambia 7 OE resta 1OE
Comparacin Incremento 3OE}
Comparacin Incremento 3OE}
}

Universidad de Huelva
Propiedades de O

Universidad de Huelva
Recurrencia
T(n) = E(N) donde en E(n) aparece una expresin de T(n)

Algoritmos recursivos
Se expresa el algoritmo en base a las condiciones
iniciales necesarias y una expresin recursiva

T(n) = T(n-1) + T(n-2) Para n > 1


T(n) = 1 Para n=1
T(n) =0 Para n= 0

Universidad de Huelva
Ecuaciones Homogeneas

Universidad de Huelva
Races distintas

Universidad de Huelva
Races distintas II

Universidad de Huelva
Races Multiplicidad > 1

Ejemplo:

Universidad de Huelva
No Homogeneas

Universidad de Huelva
Ecuacin caracterstica

los coeficientes ai y b son nmeros reales,


y p(n) es un polinomio en n de grado d
Solucin

Ejemplo: Torres de Hanoi

Universidad de Huelva
Ecuacin generalizada

Solucin

Ejemplo

Universidad de Huelva
Cambio de variable
n es una potencia de 2 (n > 3),
T(1) = 1, y T(2) = 6.

b =2 d = 0

Universidad de Huelva

Vous aimerez peut-être aussi