Tema 2 de ADA – Reglas practicas para el calculo de la eficiencia.

Tema 2  de ADA – Análisis y Diseño de Algoritmo

Reglas practicas para el calculo de la eficiencia.

  1. Programas iterativos. No realizan llamadas a si mismos(recursivas).
  • En un programa iterativo puede haber:
    • de orden 1: asignaciones, entrada/salida, expresiones de orden 1 –> tiempo constante.
    • Sentecias secuenciales. Se aplica la regla de suma con las sentencias. El orden seria el maximo de cada uno de los ordenes de las sentencias.
    • sentencias secuenciales. hay que tener en cuenta el caso mejor, peor y medio.
      • Ejemplo:
      • if (c) sentencia1: orden n2 else sentencia2: orden n
      • El caso mejor sera cuandoi c = falso, (c NO es el tamaño del problema). Entonces el orden sera n.
      • El caso peor sera cuando c sea verdadero. En esta caso el orden será n2.
      • El caso medio debe estar entre el caso mejor y el peor.
    • bucles. El orden será el orden máximo de las sentencias internas del bucle por el numero de veces que se ejecutara.
      • Ejemplo:
      • mientras c (orden 1) Sentencias (orden n) finmientras
      • En este caso, la condicion del mientras, es de orden constante, luego siempre se ejecutara las sentencias de dentro un numero determinado de veces. El orden será 1·n o lo que es lo mismo n.
      • Ejemplo2:
      • mientras i
      • En este caso, es de orden n·n, orden cuadratico. Siendo f el tamaño del problema. la condicion se ejecutara n veces, y las sentencias del buqcle, que son de orden n, se ejecutaran n veces.
    • llamadas a funciones. La llamada en sí, es constante, habiendole que sumar el coste ed los parametros, mas el coste de las sentencias que tiene la funcion o método.

Instrucción crítica

Es una instrucción que se ejecutará igual o tantas veces mcomo cualquier otra del programa.
Es la instrucción que mas veces se puede ejecutar.

Ejermplo.(n es el tamaño del array)

desde i:=1 hasta n-1 j:=1 mientras j<=n-1   si a[j]>a[j+1]:      sentecias de orden 1   fsi   j:=j+1 fmientrasfdesde

Del bucle interior, hacemos el sumatorio desde j =1 hasta n-1 de 1 (sp=sum(1) desde 1 hasta n-1)
Del bucle exterior hacemos el sumatorio desde i = 1 hasta n-1 del sumatorio interior. (sum (sp) desde 1 hasta n-1).

Resolviendo, obtenemos que es de orden cuadrado.

sum (sum(1) desde 1 hasta n-1) desde 1 hasta n-1

*sum quiere decir sumatorio


Dejar un comentario

hola

Hola hola hola

Dejar un comentario