Vous êtes sur la page 1sur 4

0.

Notacin
Representacin de algoritmos en pseudocdigo (Formato 1):

TEMA 1: EFICIENCIA DE LOS ALGORITMOS

ALGORITMO <Nombre>
DATOS ENTRADA:
<nombre y tipo de las variables>
RESULTADO:
<nombre y tipo de las variables>
GLOBAL:
...
AUXILIAR:
...
METODO:
<Instrucciones>

0. Notacin
1. Medida de la complejidad
2. Anlisis por casos
3. Notacin asinttica

f<Nombre>

Los comentarios se escribirn con dobles barras (//).

Metodologa de la Programacin

0. Notacin

Metodologa de la Programacin

0. Notacin

Representacin de algoritmos en pseudocdigo (Formato 2):

Instrucciones:
Instruccin condicional:

ALGORITMO <Nombre> (<param. entrada>) dev <param. Salida>


GLOBAL:
...
AUXILIAR:
...
METODO:
<Instrucciones>

si <condicin> entonces
<instrucciones>
sino
<instrucciones>
fsi

f<Nombre>

Global no implica que se implementar como global en el programa.


Normalmente sern parmetros por referencia. Tambin lo utilizaremos
para declarar funciones.

Metodologa de la Programacin

Metodologa de la Programacin

0. Notacin

0. Notacin

Instrucciones:

Ejemplo:

Instruccin iterativa:
Mientras
mientras <condicin>
<instrucciones>
fmientras

ALGORITMO mcd

Repetir
repetir
<instrucciones>
hasta que <condicin>

// de Euclides

DATOS:

n, m: N

RESULTADO:

m: N

AUXILIAR:

r: N

METODO:
repetir

Para

r n mod m
si r 0 entonces
n m; m r

para <rango de variacin de la variable de control> hacer


<instrucciones>
fpara

fsi
hasta que r = 0
fmcd

Ejemplo de rango: i <- 1 hasta n


Metodologa de la Programacin

Metodologa de la Programacin

0. Notacin
Ejemplo:

TEMA 1: EFICIENCIA DE LOS ALGORITMOS

ALGORITMO mcd(n, m: N) dev m: N


AUXILIAR:

r: N

METODO:

0. Notacin

repetir

1. Medida de la complejidad

r n mod m
si r 0 entonces

2. Anlisis por casos

n m; m r
fsi

3. Notacin asinttica

hasta que r = 0
fmcd

Metodologa de la Programacin

Metodologa de la Programacin

1. Medida de la complejidad

1. Medida de la complejidad

Por qu medimos la complejidad?


Para determinar que algoritmo es mejor dentro de una familia
de algoritmos que resuelven el mismo problema.

El coste temporal depende del tipo de lenguaje y del tipo de


ordenador
No es til medir el coste en segundos

Qu medimos?
Coste Temporal: Tiempo empleado en la ejecucin de un
algoritmo para obtener un resultado a partir de los datos de
entrada.
Coste Espacial: Espacio de memoria ocupado por un algoritmo
antes, durante y despus de su ejecucin.

Mediremos el coste temporal en funcin de unidades de


tiempo que dependern del ordenador:
ta: Tiempo de una asignacin.
top : Tiempo de una operacin matemtica.
tc : Tiempo de una comparacin.

Metodologa de la Programacin

1. Medida de la complejidad

Metodologa de la Programacin

10

1. Medida de la complejidad
100

Ejemplo: Realizar un algoritmo que calcule

y = x

a) Calculo del coste:

i =1

y 0

Dos posibles algoritmos:


a) Algoritmo basado exclusivamente en el enunciado:
y 0
i 1
mientras (i 100) hacer
y y + x
i i + 1
f_mientras

Metodologa de la Programacin

ta

i 1

ta

mientras (i 100) hacer

tc

y y + x

to+ta

i i + 1

to+ta

f_mientras

tc

* 100
(para salir del bucle)

Tiempo1 = 2ta + 100 * (tc + 2to + 2ta) + tc =


= 202 ta + 202 to + 101 tc

11

Metodologa de la Programacin

12

1. Medida de la complejidad

1. Medida de la complejidad

b) Si estudiamos el problema, podemos ver que sumar 100 veces


x es lo mismo que multiplicar x por 100:

Talla de un problema:
Adems de depender del lenguaje y del tipo de ordenador, el
coste tambin puede depender de la entrada del problema.

y 100 * x

DEF. (Talla): Llamaremos talla de un problema al valor o conjunto de


valores asociados a la entrada del problema y que representa una
medida del tamao del problema respecto de otras entradas
posibles.

El coste del algoritmo ser:


Tiempo2 = to + ta

Qu algoritmo es mejor?

Metodologa de la Programacin

13

1. Medida de la complejidad
y = x

Anlisis mediante contaje de pasos


Consiste en no diferenciar entre tipos de operaciones
elementales.

i =1

Algoritmo Suma(x:Ent; n:Nat) dev y:Ent


i: Nat

y 0

ta

i 1

ta

mientras (i n) hacer

tc

y y + i
i i + 1
f_mientras

14

1. Medida de la complejidad
n

Ejemplo: Realizar un algoritmo que calcule


Aux:

Metodologa de la Programacin

to+ta

DEF. (Paso): Cualquier secuencia de operaciones con contenido


semntico, el coste del cual es independiente de la talla del
problema.

* n

to+ta
tc

(para salir del bucle)

Tiempo1 = 2ta + n * (tc + 2to + 2ta) + tc

El tiempo total va a depender de n.


Metodologa de la Programacin

15

Metodologa de la Programacin

16

Vous aimerez peut-être aussi