SlideShare una empresa de Scribd logo
1 de 18
UNIDAD 1 Análisis de algoritmos
Complejidad de algoritmos: La complejidad algorítmica es una métrica teórica que se aplica a los algoritmos. Entender la complejidad es importante porque a la hora de resolver muchos problemas, utilizamos algoritmos ya diseñados. Saber valorar su valor de complejidad puede ayudarnos mucho a conocer cómo se va a comportar el algoritmo e incluso a escoger uno u otro.
Algoritmo: Podemos entender por algoritmo una secuencia de instrucciones cuyo objetivo es la resolución de un problema.
Algoritmo  A Algoritmo  F Algoritmo  B Algoritmo  E Algoritmo  C Algoritmo  D
¿Cuál es mejor? Saber si un algoritmo es mejor que otro puede estudiarse desde dos puntos de vista:  Un algoritmo es mejor cuanto tarde menos en resolver un problema. O es mejor cuanta menos memoria necesite.
A la idea del tiempo que consume un algoritmo para resolver un problema le llamamos: complejidad temporal. A la idea de la memoria que necesita el algoritmo le llamamos: complejidad espacial.
LA COMPLEJIDAD NO ES UN NÚMERO.  ES UNA FUNCIÓN.
01 	funcionejemplo(n: entero):entero 02 	empieza 03    		variables: a, j, k enteros 04    		para j desde 1 hasta n hacer 05        			a=a+j 06    		fin para 07    		para k desde n hasta 1 hacer 08        			a=a-1 09        			a=a*2 10    		fin para 11   		devolvera 12 		termina El primer bucle se ejecuta n veces, y en su interior hay una instrucción (la de la línea 5). Eso quiere decir que la línea 5 se ejecuta n veces.  Después se ejecuta el segundo bucle, que contiene en su interior dos instrucciones (las de las líneas 8 y 9). Como ese segundo bucle se ejecuta también n veces y tiene dos instrucciones, se realizan 2n instrucciones.  Finalmente hay una instrucción en la línea 11 que se ejecuta una sola vez. Por lo tanto, el número de instrucciones que se ejecutan en total son  n+2n+1   es decir        3n+1
01		 funcion ejemplo2(n: entero):entero 02 	empieza 03    		variables: a entero 04    		a=n*3 05   		 a=a+2 06    		devolver a  07 	termina   La función ejemplo2 realiza siempre 3 instrucciones (las líneas 4, 5 y 6), independientemente de lo que se le pase como parámetro.  Este algoritmo siempre tarda lo mismo para cualquier valor de n.
01 		funcion ejemplo3(n:entero): entero 02 	empieza 03     		variables i, j, k enteros 04     		para i=1 hasta n hacer    05        			para j=n hasta 1 hacer 06           				k=k+j 07           				k=k+i 08        			fin para 09     		fin para 10     		devolver k 11 		termina La función ejemplo3 tiene dos bucles para anidados.  Cada bucle se ejecuta n veces, y en el interior del segundo hay 2 instrucciones. El bucle interior hace que las dos instrucciones se repitan n veces, y el bucle exterior hace que todo eso se repita n veces más. Después hay una última instrucción (la de la línea 10).  Así pues, se hacen  2×n×n+1 instrucciones,  es decir 2n2+1
PEOR CASO, MEJOR CASO No todos los algoritmos son totalmente dependiente de la talla.   En la mayor parte de los algoritmos, también influye el propio contenido de los datos.       Es posible que para un problema determinado de tamaño n, unas veces el algoritmo tarde más y otras tarde menos, dependiendo de los propios datos de entrada del problema de tamaño n.
01	 funcionEstaEn(v: array[1..n] de enteros, x: entero):booleano 02 	empieza 03    		variables: i:entero, encontrado:booleano; 04   		 i=1; 05    		encontrado=false; 06    		mientras(NO(encontrado) Y x<=n) hacer 07      			 si v[i]==x entonces 08         			encontrado=true; 09       		fin si 10     			  i=i+1 11    		fin mientras 12    		devolver encontrado 13 	termina
El ejemplo anterior contiene en su interior un bucle mientras que no se ejecuta un número determinado de veces.   Si pasamos a esa función un vector de n=100 enteros, y un entero x=17. Es evidente que la talla del problema es n=100, ya que es lo que determina el número de instrucciones que se ejecutarán.   Sin embargo, es posible que el valor 17 esté situado en la posición 30 del vector, con lo que el bucle se realizará 30 veces, o quizá en la posición 50, o quizá no esté en el vector, con lo que el bucle se ejecutará n=100 veces, recorriendo todo el vector.
Se pueden distinguir dos métricas:  qué es lo peor que nos puede pasar para un problema de tamaño n,  y qué es lo mejor que nos puede pasar para un problema de tamaño n.
Haciendo unas pocas cuentas para el ejemplo anterior.    Vemos que en el interior del bucle mientras hay 2 instrucciones (el si y el incremento de i), y en el exterior hay 3, dos antes del mientras y una después.
Lo mejor que nos puede pasar es que encontremos el valor  x a la primera. En ese caso, el bucle se ejecuta una sola vez. Y por lo tanto el número de instrucciones que realizamos  son 3+2=5. Lo peor que puede pasar es que el valor x no se encuentre en el vector, así que el bucle se ejecutará n veces, recorriendo todo el vector. El número de instrucciones que realizamos es 3+2n
O    Grande  (Omicron) Para expresar esto, se utiliza una notación específica:  Para este algoritmo, su complejidad en el peor caso es  O(2n+3)  A esta notación se le denomina "O Grande“ o simplemente "Complejidad en el peor caso"
Ω Omega Para el mejor de los casos su complejidad seria:    Ω(5)   A esta notación  se le denomina Omega o "complejidad en el mejor caso".

Más contenido relacionado

La actualidad más candente

Metodos abiertos
Metodos abiertosMetodos abiertos
Metodos abiertos
Natalia
 
Presentacion Metodo de Newton
Presentacion Metodo de NewtonPresentacion Metodo de Newton
Presentacion Metodo de Newton
pabloaguilar3
 
Máquina de turing
Máquina de turingMáquina de turing
Máquina de turing
Ivan
 
Maquinas de turing
Maquinas de turingMaquinas de turing
Maquinas de turing
Jesus David
 
Método de la Secante
Método de la Secante Método de la Secante
Método de la Secante
Miguel Paredes
 

La actualidad más candente (20)

Maquina de turing - Enzo y Bolivar - Teoria de Automatas
Maquina de turing - Enzo y Bolivar - Teoria de AutomatasMaquina de turing - Enzo y Bolivar - Teoria de Automatas
Maquina de turing - Enzo y Bolivar - Teoria de Automatas
 
La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.
 
Maquina de turing y resolubilidad e Irresolubilidad
Maquina de turing y resolubilidad e IrresolubilidadMaquina de turing y resolubilidad e Irresolubilidad
Maquina de turing y resolubilidad e Irresolubilidad
 
Newton raphson
Newton raphsonNewton raphson
Newton raphson
 
Como funciona una maquina de turing
Como funciona una maquina de turingComo funciona una maquina de turing
Como funciona una maquina de turing
 
Maquina de Turing
Maquina de TuringMaquina de Turing
Maquina de Turing
 
Programación de nivel básico 1 y 2. c2.
Programación de nivel básico 1 y 2. c2.Programación de nivel básico 1 y 2. c2.
Programación de nivel básico 1 y 2. c2.
 
Metodos abiertos
Metodos abiertosMetodos abiertos
Metodos abiertos
 
Presentacion Metodo de Newton
Presentacion Metodo de NewtonPresentacion Metodo de Newton
Presentacion Metodo de Newton
 
Metodos numericos final
Metodos numericos finalMetodos numericos final
Metodos numericos final
 
Máquina de turing
Máquina de turingMáquina de turing
Máquina de turing
 
Maquinas de turing
Maquinas de turingMaquinas de turing
Maquinas de turing
 
Instituto universitario politécnico revista 1
Instituto universitario politécnico revista 1Instituto universitario politécnico revista 1
Instituto universitario politécnico revista 1
 
Metodo de la secante en scilab
Metodo de la secante en scilabMetodo de la secante en scilab
Metodo de la secante en scilab
 
Método de la Secante
Método de la Secante Método de la Secante
Método de la Secante
 
Ensayo de métodos numéricos
Ensayo de métodos numéricos Ensayo de métodos numéricos
Ensayo de métodos numéricos
 
Máquinas de Turing - Tipos y Aplicaciones
Máquinas de Turing - Tipos y AplicacionesMáquinas de Turing - Tipos y Aplicaciones
Máquinas de Turing - Tipos y Aplicaciones
 
La pregunta para la que no me puedo decidir
La pregunta para la que no me puedo decidirLa pregunta para la que no me puedo decidir
La pregunta para la que no me puedo decidir
 
Graficas con Matlab
Graficas con Matlab Graficas con Matlab
Graficas con Matlab
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turing
 

Similar a Unidad 1

Jflambert lyada - ayudantia matematicas discretas
Jflambert   lyada - ayudantia matematicas discretasJflambert   lyada - ayudantia matematicas discretas
Jflambert lyada - ayudantia matematicas discretas
Francisco Lambert Obediente
 
Jflambert lyada - ayudantia ordenamiento y teo maestro
Jflambert   lyada - ayudantia ordenamiento y teo maestroJflambert   lyada - ayudantia ordenamiento y teo maestro
Jflambert lyada - ayudantia ordenamiento y teo maestro
Francisco Lambert Obediente
 
Matematicas para la Olimpiada
Matematicas para la OlimpiadaMatematicas para la Olimpiada
Matematicas para la Olimpiada
Joemmanuel Ponce
 
Resolver ecuaciones lineales y no lineales bueno
Resolver ecuaciones lineales y no lineales buenoResolver ecuaciones lineales y no lineales bueno
Resolver ecuaciones lineales y no lineales bueno
frankkqqzz
 
Recursividad Con C#
Recursividad Con C#Recursividad Con C#
Recursividad Con C#
rezzaca
 

Similar a Unidad 1 (20)

Cap2.1
Cap2.1Cap2.1
Cap2.1
 
Cap1.3
Cap1.3Cap1.3
Cap1.3
 
Gauss
GaussGauss
Gauss
 
Gauss
GaussGauss
Gauss
 
Calculo numérico y Manejo de errores
Calculo numérico y Manejo de erroresCalculo numérico y Manejo de errores
Calculo numérico y Manejo de errores
 
Jflambert lyada - ayudantia matematicas discretas
Jflambert   lyada - ayudantia matematicas discretasJflambert   lyada - ayudantia matematicas discretas
Jflambert lyada - ayudantia matematicas discretas
 
Jflambert lyada - ayudantia ordenamiento y teo maestro
Jflambert   lyada - ayudantia ordenamiento y teo maestroJflambert   lyada - ayudantia ordenamiento y teo maestro
Jflambert lyada - ayudantia ordenamiento y teo maestro
 
Notación Asintótica
Notación AsintóticaNotación Asintótica
Notación Asintótica
 
Matematicas para la Olimpiada
Matematicas para la OlimpiadaMatematicas para la Olimpiada
Matematicas para la Olimpiada
 
ALGEBRA UNIVERSAL
ALGEBRA UNIVERSALALGEBRA UNIVERSAL
ALGEBRA UNIVERSAL
 
Anexos 8
Anexos 8Anexos 8
Anexos 8
 
Complejidad Computacional
Complejidad ComputacionalComplejidad Computacional
Complejidad Computacional
 
Suma de imagenes
Suma de imagenesSuma de imagenes
Suma de imagenes
 
Informe
InformeInforme
Informe
 
Complejidad
ComplejidadComplejidad
Complejidad
 
Resolver ecuaciones lineales y no lineales bueno
Resolver ecuaciones lineales y no lineales buenoResolver ecuaciones lineales y no lineales bueno
Resolver ecuaciones lineales y no lineales bueno
 
Recursividad Con C#
Recursividad Con C#Recursividad Con C#
Recursividad Con C#
 
Trabajo bucles bn
Trabajo bucles bnTrabajo bucles bn
Trabajo bucles bn
 
102906052-Metodo-de-Gauss-Seidel-exposicion.pdf
102906052-Metodo-de-Gauss-Seidel-exposicion.pdf102906052-Metodo-de-Gauss-Seidel-exposicion.pdf
102906052-Metodo-de-Gauss-Seidel-exposicion.pdf
 
Mathlab tutorial
Mathlab tutorialMathlab tutorial
Mathlab tutorial
 

Más de Isabel (20)

Isabel trejo reconocimientofacial_evidencia1
Isabel trejo reconocimientofacial_evidencia1Isabel trejo reconocimientofacial_evidencia1
Isabel trejo reconocimientofacial_evidencia1
 
Expresiones Regulares
Expresiones RegularesExpresiones Regulares
Expresiones Regulares
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Lenguajes formales
Lenguajes formalesLenguajes formales
Lenguajes formales
 
Herramientas
HerramientasHerramientas
Herramientas
 
Gmail
GmailGmail
Gmail
 
Algortimos
AlgortimosAlgortimos
Algortimos
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Factores
FactoresFactores
Factores
 
Software de alta calidad
Software de alta calidadSoftware de alta calidad
Software de alta calidad
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Historia
HistoriaHistoria
Historia
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Mda informatica
Mda informaticaMda informatica
Mda informatica
 
Sgbd
SgbdSgbd
Sgbd
 
Conceptos basicos
Conceptos basicosConceptos basicos
Conceptos basicos
 
Unidad 1 ciclo de vida
Unidad 1 ciclo de vidaUnidad 1 ciclo de vida
Unidad 1 ciclo de vida
 
Roles desarrollo software
Roles desarrollo softwareRoles desarrollo software
Roles desarrollo software
 
Unidad 1 conceptos introductorios
Unidad 1 conceptos introductoriosUnidad 1 conceptos introductorios
Unidad 1 conceptos introductorios
 

Último

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
silviayucra2
 

Último (10)

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 

Unidad 1

  • 1. UNIDAD 1 Análisis de algoritmos
  • 2. Complejidad de algoritmos: La complejidad algorítmica es una métrica teórica que se aplica a los algoritmos. Entender la complejidad es importante porque a la hora de resolver muchos problemas, utilizamos algoritmos ya diseñados. Saber valorar su valor de complejidad puede ayudarnos mucho a conocer cómo se va a comportar el algoritmo e incluso a escoger uno u otro.
  • 3. Algoritmo: Podemos entender por algoritmo una secuencia de instrucciones cuyo objetivo es la resolución de un problema.
  • 4. Algoritmo A Algoritmo F Algoritmo B Algoritmo E Algoritmo C Algoritmo D
  • 5. ¿Cuál es mejor? Saber si un algoritmo es mejor que otro puede estudiarse desde dos puntos de vista: Un algoritmo es mejor cuanto tarde menos en resolver un problema. O es mejor cuanta menos memoria necesite.
  • 6. A la idea del tiempo que consume un algoritmo para resolver un problema le llamamos: complejidad temporal. A la idea de la memoria que necesita el algoritmo le llamamos: complejidad espacial.
  • 7. LA COMPLEJIDAD NO ES UN NÚMERO. ES UNA FUNCIÓN.
  • 8. 01 funcionejemplo(n: entero):entero 02 empieza 03 variables: a, j, k enteros 04 para j desde 1 hasta n hacer 05 a=a+j 06 fin para 07 para k desde n hasta 1 hacer 08 a=a-1 09 a=a*2 10 fin para 11 devolvera 12 termina El primer bucle se ejecuta n veces, y en su interior hay una instrucción (la de la línea 5). Eso quiere decir que la línea 5 se ejecuta n veces. Después se ejecuta el segundo bucle, que contiene en su interior dos instrucciones (las de las líneas 8 y 9). Como ese segundo bucle se ejecuta también n veces y tiene dos instrucciones, se realizan 2n instrucciones. Finalmente hay una instrucción en la línea 11 que se ejecuta una sola vez. Por lo tanto, el número de instrucciones que se ejecutan en total son n+2n+1 es decir 3n+1
  • 9. 01 funcion ejemplo2(n: entero):entero 02 empieza 03 variables: a entero 04 a=n*3 05 a=a+2 06 devolver a 07 termina   La función ejemplo2 realiza siempre 3 instrucciones (las líneas 4, 5 y 6), independientemente de lo que se le pase como parámetro. Este algoritmo siempre tarda lo mismo para cualquier valor de n.
  • 10. 01 funcion ejemplo3(n:entero): entero 02 empieza 03 variables i, j, k enteros 04 para i=1 hasta n hacer 05 para j=n hasta 1 hacer 06 k=k+j 07 k=k+i 08 fin para 09 fin para 10 devolver k 11 termina La función ejemplo3 tiene dos bucles para anidados. Cada bucle se ejecuta n veces, y en el interior del segundo hay 2 instrucciones. El bucle interior hace que las dos instrucciones se repitan n veces, y el bucle exterior hace que todo eso se repita n veces más. Después hay una última instrucción (la de la línea 10). Así pues, se hacen 2×n×n+1 instrucciones, es decir 2n2+1
  • 11. PEOR CASO, MEJOR CASO No todos los algoritmos son totalmente dependiente de la talla. En la mayor parte de los algoritmos, también influye el propio contenido de los datos. Es posible que para un problema determinado de tamaño n, unas veces el algoritmo tarde más y otras tarde menos, dependiendo de los propios datos de entrada del problema de tamaño n.
  • 12. 01 funcionEstaEn(v: array[1..n] de enteros, x: entero):booleano 02 empieza 03 variables: i:entero, encontrado:booleano; 04 i=1; 05 encontrado=false; 06 mientras(NO(encontrado) Y x<=n) hacer 07 si v[i]==x entonces 08 encontrado=true; 09 fin si 10 i=i+1 11 fin mientras 12 devolver encontrado 13 termina
  • 13. El ejemplo anterior contiene en su interior un bucle mientras que no se ejecuta un número determinado de veces. Si pasamos a esa función un vector de n=100 enteros, y un entero x=17. Es evidente que la talla del problema es n=100, ya que es lo que determina el número de instrucciones que se ejecutarán. Sin embargo, es posible que el valor 17 esté situado en la posición 30 del vector, con lo que el bucle se realizará 30 veces, o quizá en la posición 50, o quizá no esté en el vector, con lo que el bucle se ejecutará n=100 veces, recorriendo todo el vector.
  • 14. Se pueden distinguir dos métricas: qué es lo peor que nos puede pasar para un problema de tamaño n, y qué es lo mejor que nos puede pasar para un problema de tamaño n.
  • 15. Haciendo unas pocas cuentas para el ejemplo anterior. Vemos que en el interior del bucle mientras hay 2 instrucciones (el si y el incremento de i), y en el exterior hay 3, dos antes del mientras y una después.
  • 16. Lo mejor que nos puede pasar es que encontremos el valor x a la primera. En ese caso, el bucle se ejecuta una sola vez. Y por lo tanto el número de instrucciones que realizamos son 3+2=5. Lo peor que puede pasar es que el valor x no se encuentre en el vector, así que el bucle se ejecutará n veces, recorriendo todo el vector. El número de instrucciones que realizamos es 3+2n
  • 17. O Grande (Omicron) Para expresar esto, se utiliza una notación específica: Para este algoritmo, su complejidad en el peor caso es O(2n+3) A esta notación se le denomina "O Grande“ o simplemente "Complejidad en el peor caso"
  • 18. Ω Omega Para el mejor de los casos su complejidad seria: Ω(5) A esta notación se le denomina Omega o "complejidad en el mejor caso".