Está en la página 1de 19

ANÁLISIS DE ALGORITMOS

(COMPLEJIDAD EN TIEMPO
Y ESPACIO).
Equipo Dinamita:
Cortés Vargas Adamari Dagmar
Angeles Castañeda Uriel
Cabanillas Alexandres Juan Jose
Ojeda Cuevas Jose Miguel
Que es un algoritmo?
El algoritmo es una secuencia ordenada y cronológica de pasos que llevan a la solución de un
problema o a la ejecución de una tarea (o actividad). Los pasos del algoritmo deben tener las
siguientes características:
>Ser simples, claros, precisos, exactos.

>Tener un orden logico.

>Tener un principio y un fin.


Elección de algoritmos
Caracteristicas:
Desventajas a considerar:
1-Que el algoritmo sea fácil de
El costo de tiempo de programación
entender, codificar y depurar
excede al costo de ejecución del
2-Que use eficientemente programa, el costo a optimizar es el
los recursos del computador de la escritura.

y se ejecute en especial con la mayor rapidez. Si se va a utilizar muchas veces el


costo de ejecución del programa
supera al de escritura. (Cuando
entradas de gran tamaño).
• Un algoritmo es cualitativo cuando en sus pasos o
instrucciones no están involucrados cálculos numéricos.
Las instrucciones para armar un aeromodelo, para
desarrollar una actividad física o encontrar un tesoro.

• Los algoritmos cuantitativos involucran cálculos


Algoritmo numéricos.
cualitativo y • Ejemplos:
cuantitativo
• - Solución de un factorial
• - solución de una ecuación de segundo grado
• - encontrar el mínimo común multiplicador
Técnicas de representación de algoritmos
Para la representación de un
algoritmo, antes de ser convertido
a lenguaje de programación, se
utilizan algunos métodos de
representación escrita, gráfica o
matemática. Los métodos más
conocidos son:

- diagrama de flujo

- pseudocódigo

- fórmulas
matemáticas
Tiempo
• Los datos de entrada al programa

• La calidad del código generado por el compilador


utilizado para crear el programa objeto

•La naturaleza y rapidez de las instrucciones de la


máquina empleadas en la ejecución del programa

• La complejidad de tiempo del algoritmo base del


programa
Clasificación
• Si el tiempo de ejecución depende
de la entrada, el tiempo de ejecución
debe definirse como una función de la
entrada, por lo que el tiempo no
depende de la entrada, sino de su
tamaño (longitud).
Algoritmo de Ordenamiento:
• Los algoritmos de ordenamiento nos permite, como su nombre lo dice,
ordenar información de una manera especial basándonos en un criterio de
ordenamiento.
• En la computación, el ordenamiento de datos cumple un rol muy
importante, ya sea como un fin en sí o como parte de otros procedimientos
más complejos. Se han desarrollado muchas técnicas en este ámbito, cada
una con características específicas, y con ventajas y desventajas sobre las
demás.
EJEMPLO
EJEMPLO
EN
CÓDIGO
Ejemplo de sorting

• Se da como entrada una lista de elementos para ordenar para producir otra lista

• 2,1,3,1,5,8 Entrada

• 1,1,2,3,5,8 Salida

• Los segundos elementos están en orden ascendiente.

• La medida natural del tamaño de la entrada a un programa de clasificación es el número de elementos a ordenar, la
longitud de la lista.

• La longitud de la entrada es una medida apropiada y es la medida utilizada a menos que se especifique lo contrario.
Ejemplo de cálculo de tiempo:
Tenemos T(0)=1, T(1)=4, en general T(n)=(n+1)^2 entonces:

T(n) O(n^2) cuando n0 y c=4.

Es decir n>=1.

(n+1)^2 <= 4n^2.

Nota: No se puede hacer n0=0 T(0)=1 no es menor que C(0^2)=0 para ninguna constante c

Suponiendo que los valores son positivos o no negativos, entonces T(n) es O(f(n)) si existen
constantes positivas C y n0 T(n<=Cf(n) cuando n>=n0

Si el resultado es O(f(n)) la velocidad es creciente


• T(n) Tiempo de ejecución de un programa con una entrada de tamaño n.

• Ejemplo

• Tiempo de ejecución T(n)=cn^2 donde c es una constante

• Las unidades T(n) se dejan sin especificar, pero se consideran como el número de
instrucciones ejecutadas.

• T(n) es el tiempo de ejecución en el peor caso, es decir el máximo tiempo para


entradas n.
• También se considera Tprom(n), el valor medio, pero es
engañoso suponer que todas las entradas son igualmente
probables.

• Consideraciones:

• El tiempo depende del compilador y de la


máquina, implica expresar T(n) en unidades propias, como
proporciones, ejemplo n^2 sin especificar constantes de
proporcionalidad.
Administración del espacio:
• Bloques de diferente e igual tamaño(distribucion, asignacion,
devolucion, seleccion):

•Recolección en el mismo sitio (algoritmo de Deutshe-Schorr-


Waite):

• Objetos de diferentes tamaños:

•Fragmentación y compactación de bloques (algoritmo de


Morris):

• Sistemas de manejo de memoria por


afinidades:
Complejidad en el espacio
Es la memoria que utiliza un programa para su ejecución; es decir el
espacio de memoria que ocupan todas las variables propias del
algoritmo.

Esta se divide en Memoria Estática y Memoria Dinámica.

Memoria estática. Para calcularla se suma la memoria que ocupan las variables declaradas en el
algoritmo.Se refiere al tamaño de los objetos que resuelven el problema

Memoria dinámica. Su cálculo no es tan simple ya que depende de cada ejecución del algoritmo.
viene dada por la cantidad de objetos existentes en un punto del programa
Ejemplo en el espacio
GRACIAS

También podría gustarte