Complejidad de Algoritmos

568 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
568
On SlideShare
0
From Embeds
0
Number of Embeds
145
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Complejidad de Algoritmos

  1. 1. Complejidad de los Algoritmos
  2. 2. ¿Que es la complejidad de un algoritmo? Es cuando un algoritmo será mas eficiente comparado con otro, siempre que consuma menos recursos, como el tiempo y espacio de memoria necesarios para ejecutarlo.
  3. 3. Complejidad Temporal o Tiempo de ejecución Tiempo de cómputo necesario para ejecutar algún programa.
  4. 4. Complejidad Espacial Memoria que utiliza un programa para su ejecución, La eficiencia en memoria de un algoritmo indica la cantidad de espacio requerido para ejecutar el algoritmo; es decir, el espacio en memoria que ocupan todas las variables propias al algoritmo.
  5. 5. Tiempo de Ejecución • El tiempo de Ejecución de un programa se mide en función de N, lo que designaremos como T(N). • Esta función se puede calcular físicamente ejecutando el programa acompañados de un reloj, o calcularse directamente sobre el código, contando las instrucciones a ser ejecutadas y multiplicando por el tiempo requerido por cada instrucción.
  6. 6. Factores que influyen en la Complejidad • Tamaño del problema • Naturaleza de los datos de entrada • Recursos hardware y software
  7. 7. •Tamaño del problema: magnitud(es) que al aumentar incrementan la complejidad del algoritmo. •Ejemplos: Ordenación de un vector: número de elementos Factorizar un número en sus factores primos: valor del número • Naturaleza de los datos de entrada: en función de cuáles sean los datos del problema se ejecutarán o no determinadas instrucciones de decisión y será distinto el número de iteraciones de los bucles  el problema se resolverá en más o en menos tiempo. •Ejemplo: buscar en un vector el valor que está almacenado en la primera celda resulta trivial en la búsqueda lineal.
  8. 8. Caso mejor: los datos de entrada consumen el mínimo • Caso peor: los datos de entrada consumen el máximo (cota superior). • Caso promedio: los datos se distribuyen de forma aleatoria. Difícil de calcular. Naturaleza de los datos de entrada
  9. 9. COMPLEJIDAD ASINTÓTICA Consiste en el cálculo de la complejidad temporal a priori de un algoritmo en función del tamaño del problema, n, prescindiendo de factores constantes multiplicativos y suponiendo valores de n muy grandes No sirve para establecer el tiempo exacto de ejecución, sino que permite especificar una cota (inferior, superior o ambas) para el tiempo de ejecución de un algoritmo
  10. 10. NOTACION “O” •Existen diferentes notaciones para la complejidad asintótica •Una de ellas es la notación O, que permite especificar la cota superior de la ejecución de un algoritmo •La sentencia “f(n) es O(g(n))” significa que la tasa de crecimiento de f(n) no es mayor que la tasa de crecimiento de g(n) •La notación “O” sirve para clasificar las funciones de acuerdo con su tasa de crecimiento
  11. 11. Jerarquía de ordenes de Complejidad

×