Está en la página 1de 1

Cap 2, La medida de

Análisis debe ser independiente del lenguaje o máquina


que se utilicen para la implementación

Análisis de la eficiencia de
Realizar cálculos se necesitan: instrucciones exactas
ejecutadas por el hardware y el tiempo requerido para
cada instrucción

Algoritmos algoritmos
Una comparación de algoritmos se debe basar en
diferencias significativas en eficiencia

Tres interrogantes al implementar dos algoritmos en loca ¿Qué datos debe utilizar el programa?
¿Qué computadora se utilizará?

¿Cómo se codifican los algoritmos?

El Análisis de algoritmos es una rama de la eficiencia de


algoritmos Las técnicas matemáticas analizan algoritmos con independencia de
implementaciones

Análisis del orden de magnitud Como crece el tamaño del programa crece el tiempo de ejecución
Observando cómo varía el tiempo de ejecución con le tamaño de la entrada se puede determinar la
tasa de crecimiento
La tasa de crecimiento de un programa es importante ya que predice cuánto tiempo se requerirá para
entradas muy grandes.

Consideraciones de eficiencia Tiempo y espacio


Interesa el cambio correspondiente en la cantidad de tiempo para ordenar un archivo, inducido por un
cambio correspondiente en la cantidad de tiempo para ordenar un archivo, inducido por un cambio en
el tamaño del archivo n

Análisis de rendimiento Se consigue mediante la complejidad del tiempo y espacio del programa
• La complejidad del espacio es la cantidad de memoria que necesita
• La complejidad de tiempo es la cantidad de tiempo computadora que se necesita para ejecutar

Tiempo de ejecución T(n) es el tiempo de ejecución


• Es linealmente proporcional al tamaño de la entrada sobre la que se ejecuta
• T(n) es el número de sentencias del programa C ejecutadas
• Generalmente depende de la entrada particular
El tiempo medido de ejecución a veces es una medida más realista
• Difícil de calcular

El tiempo de ejecución dependerá de: La computadora

Notación O-
grande El compilador C específico

El tiempo de ejecución de un programa se expresa O indica la cota superior asintótica


• Expresa: El número medio de instrucciones máquina que genera el compilador
utilizando notación asintótica “O-grande” • El número medio de instrucciones máquina por segundo que se ejecutan

Definición conceptual F(x) <= c |g(x)| <= Cg(x),


• Significa que |g(x)| es un límite superior para f(x)

Se expresan en los tiempos de ejecución

Complejidad
de funciones Funciones tipo monomio

Órdenes de funciones polinómicas

Órdenes exponenciales y logarítmicas

Bases de logaritmos distintas

Orden de una función general

Proporciona un límite superior para la función

Inconvenientes
de la notación
O-grande
Se aproxima el comportamiento de una función solo para
argumento arbitrarios grandes.

Útil pero requiere ser utilizada con prudencia

Sentencias de asignación son de orden constante

Complejidad
de las Complejidad del bloque then y else

sentencias de
una función C El switch es el máximo de las complejidades de cada uno
de los bloques case.

El cálculo de complejidad, se estiman el número máximo


de iteraciones para el peor caso, la complejidad es el
producto del número de iteraciones por la complejidad de
las sentencias

Complejidad constante, logarítmica, lineal, cuadrática,


cúbica, exponencial

Análisis de
algoritmos de
ordenación

La eficiencia de
los algoritmos
de búsqueda

También podría gustarte