SlideShare una empresa de Scribd logo
1 de 24
Análisis de complejidad 
Notación Big O
Repaso de comportamiento asintótico 
• El eliminar todas estas constantes 
ornamentales hacen más sencillo identificar el 
comportamiento asintótico de una función 
contadora-de-instrucciones de un programa. 
• Cualquier programa que carezca de bucles 
tendrá una f(n) = 1, ya que el número de 
instrucciones que requiere es simplemente 
una constante (a menos que utilice recursión).
Repaso de comportamiento asintótico 
• Cualquier programa con un único bucle que 
vaya desde 1 a n tendrá f(n) = n, ya que 
ejecutará un número fijo de instrucciones 
antes del bucle, un número fijo de 
instrucciones después del bucle y un número 
constante de instrucciones dentro del bucle 
que corre n veces.
Regla General 1 
• El análisis de programas sencillos se puede 
hacer contando los bucles anidados que 
contiene el programa. 
– Un sólo bucle sobre n ítems genera f(n)=n. 
– Un bucle dentro de otro bucle f( n ) = n2. 
– Un bucle dentro de un bucle que está dentro de 
otro bucle genera f( n ) = n3.
Regla General 2 
• Dado un conjunto de bucles que son 
secuenciales, el más lento de ellos determina 
el comportamiento asintótico del programa. 
• Dos bucles anidados, seguidos por un solo 
bucle, asintóticamente es lo mismo que los 
bucles anidados por sí solos, ya que los bucles 
anidados dominan el bucle individual.
Notación Theta 
• Ahora, enfoquémonos en la sofisticada 
notación que los científicos computacionales 
utilizan. 
• Cuando hayamos encontrado la f asintótica 
exacta, diremos que nuestro programa es 
Θ(f( n )).
Notación Theta 
• Por ejemplo, los programas anteriores son 
• Θ( 1 ), Θ( n2 ) y Θ( n2 ) respectivamente. 
• Θ(n) se pronuncia "theta de n". 
• A veces diremos que f(n), la función original 
que cuenta las instrucciones que incluyen las 
constantes es Θ(algo)
Notación Theta 
• Por ejemplo, podremos decir que f( n ) = 2n es 
una función que es Θ( n ) - nada nuevo en 
esto. 
• También podremos escribir 2n ∈ Θ( n ), lo cual 
se pronuncia " dos n es theta de n”.
Notación Theta 
• No se confunda con esta notación: Todo lo 
que está diciendo es que si hemos contados el 
número de instrucciones que un programa 
requiere y que si esa cantidad es 2n, entonces 
el comportamiento asintótico de nuestro 
algoritmo es descrito por n, a lo cual llegamos 
al eliminar las constantes.
Notación Theta 
• Dada esta notación, los siguientes son algunos 
enunciados puramente matemáticos. 
n6 + 3n ∈ Θ( n6 ) 
2n + 12 ∈ Θ( 2n ) 
3n + 2n ∈ Θ( 3n ) 
nn + n ∈ Θ( nn )
Notación Theta 
• Llamamos esta función, esto es, lo que 
colocamos dentro de Θ (aquí) como 
complejidad temporal, o simplemente 
complejidad de nuestro algoritmo.
Notación Theta 
• Entonces, un algoritmo con Θ(n) es de 
complejidad n. 
• También tenemos nombres especiales para 
Θ(1), Θ(n), Θ(n2) y Θ(log(n)) ya que aparecen 
bastante seguido. 
• Decimos que un algoritmo Θ(1) es un 
algoritmo temporalmente-constante, Θ(n) es 
linear, θ(n2) es cuadrático y Θ(log(n)) es 
logarítmico
Notación Big O 
• Para evaluar la complejidad de programas 
complicados es modificarlos mentalmente 
para empeorarlos de manera que sean más 
fáciles de analizar y luego encontrar la 
complejidad de este nuevo programa que 
generamos.
Notación Big O 
• Si podemos encontrar la complejidad del 
programa peor, entonces sabremos que 
nuestro programa original es como máximo 
así de malo, o mejor que eso.
Notación Big O 
• De esta forma, si encontramos una buena 
complejidad en nuestro programa modificado, 
el cual es peor que el original, podremos saber 
que nuestro programa original también tendrá 
una complejidad bastante buena, tan buena 
como la del programa alterado, o incluso 
mejor.
Notación Big O 
• Si esto es así, diremos que el algoritmo original es 
O( complejidad peor ). 
• Por ejemplo O( n2 ) se pronuncia "O-Grande de n 
cuadrado". 
• Lo que esto nos dice es que asintóticamente 
nuestro programa no es peor que n2. 
• Puede que sea mejor que eso, o quizá es igual 
que eso. 
• Dicho sea de paso, si de hecho nuestro programa 
es Θ( n2 ), aún podemos decir que es O( n2 ).
Notación Big O 
• Para ayudarle a entenderlo, imagine que 
alteramos el programa original de un modo 
que no cambie tanto, pero que aún así lo hace 
algo peor. 
• Por ejemplo podemos añadir instrucciones 
insignificantes al comienzo del programa.
Notación Big O 
• Haciendo esto alteraremos la función 
contadora-de-instrucciones mediante una 
simple constante, la cual se ignora en el 
comportamiento asintótico. 
• Por esto, un programa que es Θ( n2 ) también 
será O( n2 ).
Notación Big O 
• Pero, a la inversa, un programa que es O( n2 ) 
podría no ser Θ( n2 ). Por ejemplo, cualquier 
programa que es Θ( n ) también es O( n2 ) 
además de ser O( n ).
Notación Big O 
• Si nos imaginamos que un programa Θ( n ) es 
un bucle sencillo “for” que se repite n veces, 
podremos empeorarlo al envolverlo en otro 
bucle “for” que también se repita n veces, 
generando así un programa con f( n ) = n2.
Notación Big O 
• Si generalizamos esto, cualquier programa que 
sea Θ( a ) es O( b ) cuando b es peor que a. 
• Note que nuestra alteración al programa no tiene 
porqué darnos un programa que sea equivalente 
o comparable a nuestro programa original. 
• Solamente tiene realizar más instrucciones que el 
original para un n dado, ya que simplemente lo 
estaremos usando para contar instrucciones, no 
para resolver nuestro problema concreto.
Notación Big O 
• Por tanto, afirmar que nuestro programa es 
O( n2 ) es quedarse a resguardo: Hemos 
analizado nuestro algoritmo y hemos 
encontrado que nunca es peor que n2. 
• Pero podría darse el caso de que de hecho sea 
n2. 
• Esto nos entrega un buen estimativo de qué 
tan rápido corre nuestro programa.
Tarea MRR 7 
• De los programas de ordenamiento que 
hemos visto (inserción y burbuja), modifiquen 
su análisis asintótico para que encuentren una 
notación Big O adecuada para dichos 
algoritmos. 
• En tu cuaderno MRR explica cuál es tu 
propuesta de modificación de los algoritmos 
de ordenamiento para obtener una notación 
Big O de los mismo. Justifica tu respuesta.
• Entregar MRR7 el 4 de noviembre.

Más contenido relacionado

La actualidad más candente

Prolog ejercicios resueltos
Prolog ejercicios resueltosProlog ejercicios resueltos
Prolog ejercicios resueltosJansel M
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamientodeff000001
 
1.5.1 Representación en memoria estática y dinámica.pptx
1.5.1 Representación en memoria estática y dinámica.pptx1.5.1 Representación en memoria estática y dinámica.pptx
1.5.1 Representación en memoria estática y dinámica.pptxFernando Solis
 
Recursividad
RecursividadRecursividad
Recursividadbetzy
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Juan Astudillo
 
Apuntes generación de codigo intermedio
Apuntes generación de codigo intermedioApuntes generación de codigo intermedio
Apuntes generación de codigo intermedioHumano Terricola
 
El Juego TicTacToe (Gato) mediante Arboles de Decisiones
El Juego TicTacToe (Gato) mediante Arboles de DecisionesEl Juego TicTacToe (Gato) mediante Arboles de Decisiones
El Juego TicTacToe (Gato) mediante Arboles de DecisionesJosé Enrique Alvarez Estrada
 
Generacion codigomaquina
Generacion codigomaquinaGeneracion codigomaquina
Generacion codigomaquinatre_na_gil
 
Series de fourier - Ejemplos Resueltos
Series de fourier - Ejemplos Resueltos Series de fourier - Ejemplos Resueltos
Series de fourier - Ejemplos Resueltos Joe Arroyo Suárez
 
U1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos ComplejidadU1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos Complejidadrezzaca
 
Newton Raphson
Newton RaphsonNewton Raphson
Newton RaphsonJuan Crof
 

La actualidad más candente (20)

Prolog ejercicios resueltos
Prolog ejercicios resueltosProlog ejercicios resueltos
Prolog ejercicios resueltos
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
 
1.5.1 Representación en memoria estática y dinámica.pptx
1.5.1 Representación en memoria estática y dinámica.pptx1.5.1 Representación en memoria estática y dinámica.pptx
1.5.1 Representación en memoria estática y dinámica.pptx
 
Recursividad
RecursividadRecursividad
Recursividad
 
Recursividad
RecursividadRecursividad
Recursividad
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)
 
Apuntes generación de codigo intermedio
Apuntes generación de codigo intermedioApuntes generación de codigo intermedio
Apuntes generación de codigo intermedio
 
Noción de archivo real y virtual
Noción de archivo real y virtual Noción de archivo real y virtual
Noción de archivo real y virtual
 
El Juego TicTacToe (Gato) mediante Arboles de Decisiones
El Juego TicTacToe (Gato) mediante Arboles de DecisionesEl Juego TicTacToe (Gato) mediante Arboles de Decisiones
El Juego TicTacToe (Gato) mediante Arboles de Decisiones
 
Codificación de Huffman
Codificación de Huffman Codificación de Huffman
Codificación de Huffman
 
Logica difusa
Logica difusaLogica difusa
Logica difusa
 
Generacion codigomaquina
Generacion codigomaquinaGeneracion codigomaquina
Generacion codigomaquina
 
Codificación de Huffman
Codificación de HuffmanCodificación de Huffman
Codificación de Huffman
 
Series de fourier - Ejemplos Resueltos
Series de fourier - Ejemplos Resueltos Series de fourier - Ejemplos Resueltos
Series de fourier - Ejemplos Resueltos
 
U1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos ComplejidadU1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos Complejidad
 
Busqueda por profundidad iterativa
Busqueda por profundidad iterativaBusqueda por profundidad iterativa
Busqueda por profundidad iterativa
 
Metodo de busqueda
Metodo de busquedaMetodo de busqueda
Metodo de busqueda
 
Newton Raphson
Newton RaphsonNewton Raphson
Newton Raphson
 

Similar a Análisis de complejidad algorítmica y notación Big O

Análisis de complejidad introducción notación big o
Análisis de complejidad   introducción notación big oAnálisis de complejidad   introducción notación big o
Análisis de complejidad introducción notación big oUVM
 
Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezVanessa Ramirez
 
Nivel de programacion web_introduccion_11º3
Nivel  de programacion web_introduccion_11º3Nivel  de programacion web_introduccion_11º3
Nivel de programacion web_introduccion_11º3SebastianFrancoSotelo
 
Nivel de programacion web_introduccion_11º3
Nivel  de programacion web_introduccion_11º3Nivel  de programacion web_introduccion_11º3
Nivel de programacion web_introduccion_11º3SebastianFrancoSotelo
 
Introducción a la programación y la informática. Tema 1
Introducción a la programación y la informática. Tema 1Introducción a la programación y la informática. Tema 1
Introducción a la programación y la informática. Tema 1Andres Garcia Garcia
 
Informe tecnico unidad 7
Informe tecnico unidad 7Informe tecnico unidad 7
Informe tecnico unidad 7eliezerbs
 
Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmosrehoscript
 
Presentacion1 lenguaje de-programacion_c
Presentacion1 lenguaje de-programacion_cPresentacion1 lenguaje de-programacion_c
Presentacion1 lenguaje de-programacion_cMonica Martinez
 
Semana 1 - Principios de Algoritmos.pdf
Semana 1 - Principios de Algoritmos.pdfSemana 1 - Principios de Algoritmos.pdf
Semana 1 - Principios de Algoritmos.pdfCarlosJahnsen3
 
Complemento a la base disminuida
Complemento a la base disminuidaComplemento a la base disminuida
Complemento a la base disminuidaRoberto Chen
 
Introducción al análisis de algoritmos
Introducción al  análisis de algoritmosIntroducción al  análisis de algoritmos
Introducción al análisis de algoritmosAlvaro Enrique Ruano
 
Tema 1. elementos básicos de pascal #ipg2murjc
Tema 1. elementos básicos de pascal #ipg2murjcTema 1. elementos básicos de pascal #ipg2murjc
Tema 1. elementos básicos de pascal #ipg2murjcOriol Borras Gene
 
Fundamentos de programación en diseño web
Fundamentos de programación en diseño webFundamentos de programación en diseño web
Fundamentos de programación en diseño webDayraNieto9807
 
Fundamentos de programación en diseño web
Fundamentos de programación en diseño webFundamentos de programación en diseño web
Fundamentos de programación en diseño webkarenJulieth04
 

Similar a Análisis de complejidad algorítmica y notación Big O (20)

Complejidad
ComplejidadComplejidad
Complejidad
 
Notación Asintótica
Notación AsintóticaNotación Asintótica
Notación Asintótica
 
Análisis de complejidad introducción notación big o
Análisis de complejidad   introducción notación big oAnálisis de complejidad   introducción notación big o
Análisis de complejidad introducción notación big o
 
Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa Ramirez
 
Nivel de programacion web_introduccion_11º3
Nivel  de programacion web_introduccion_11º3Nivel  de programacion web_introduccion_11º3
Nivel de programacion web_introduccion_11º3
 
Nivel de programacion web_introduccion_11º3
Nivel  de programacion web_introduccion_11º3Nivel  de programacion web_introduccion_11º3
Nivel de programacion web_introduccion_11º3
 
Introducción a la programación y la informática. Tema 1
Introducción a la programación y la informática. Tema 1Introducción a la programación y la informática. Tema 1
Introducción a la programación y la informática. Tema 1
 
Informe tecnico unidad 7
Informe tecnico unidad 7Informe tecnico unidad 7
Informe tecnico unidad 7
 
Tema4
Tema4Tema4
Tema4
 
Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmos
 
Presentacion1 lenguaje de-programacion_c
Presentacion1 lenguaje de-programacion_cPresentacion1 lenguaje de-programacion_c
Presentacion1 lenguaje de-programacion_c
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Semana 1 - Principios de Algoritmos.pdf
Semana 1 - Principios de Algoritmos.pdfSemana 1 - Principios de Algoritmos.pdf
Semana 1 - Principios de Algoritmos.pdf
 
Complemento a la base disminuida
Complemento a la base disminuidaComplemento a la base disminuida
Complemento a la base disminuida
 
Manual estructura de_datos_2010___h._caselli_g
Manual estructura de_datos_2010___h._caselli_gManual estructura de_datos_2010___h._caselli_g
Manual estructura de_datos_2010___h._caselli_g
 
Introducción al análisis de algoritmos
Introducción al  análisis de algoritmosIntroducción al  análisis de algoritmos
Introducción al análisis de algoritmos
 
Cap2.1
Cap2.1Cap2.1
Cap2.1
 
Tema 1. elementos básicos de pascal #ipg2murjc
Tema 1. elementos básicos de pascal #ipg2murjcTema 1. elementos básicos de pascal #ipg2murjc
Tema 1. elementos básicos de pascal #ipg2murjc
 
Fundamentos de programación en diseño web
Fundamentos de programación en diseño webFundamentos de programación en diseño web
Fundamentos de programación en diseño web
 
Fundamentos de programación en diseño web
Fundamentos de programación en diseño webFundamentos de programación en diseño web
Fundamentos de programación en diseño web
 

Más de UVM

Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programaciónUVM
 
Portafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaPortafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaUVM
 
Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempoUVM
 
Administración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosAdministración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosUVM
 
Practica de arreglos
Practica de arreglosPractica de arreglos
Practica de arreglosUVM
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadoresUVM
 
Ejemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlEjemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlUVM
 
Breve repaso de apuntadores
Breve repaso de apuntadoresBreve repaso de apuntadores
Breve repaso de apuntadoresUVM
 
Arreglos conceptos básicos
Arreglos conceptos básicosArreglos conceptos básicos
Arreglos conceptos básicosUVM
 
Resolución práctica de tipos de datos
Resolución práctica de tipos de datosResolución práctica de tipos de datos
Resolución práctica de tipos de datosUVM
 
Resumen de funciones
Resumen de funcionesResumen de funciones
Resumen de funcionesUVM
 
Biblioteca estándar de funciones
Biblioteca estándar de funcionesBiblioteca estándar de funciones
Biblioteca estándar de funcionesUVM
 
Manejo de bits
Manejo de bitsManejo de bits
Manejo de bitsUVM
 
Aclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreAclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreUVM
 
Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3UVM
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuarioUVM
 
Función main()
Función main()Función main()
Función main()UVM
 
Depuración de un programa en c++
Depuración de un programa en c++Depuración de un programa en c++
Depuración de un programa en c++UVM
 
Algunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoAlgunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoUVM
 
Estructura programa c++
Estructura programa c++Estructura programa c++
Estructura programa c++UVM
 

Más de UVM (20)

Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programación
 
Portafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaPortafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación Avanzada
 
Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempo
 
Administración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosAdministración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicos
 
Practica de arreglos
Practica de arreglosPractica de arreglos
Practica de arreglos
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadores
 
Ejemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlEjemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stl
 
Breve repaso de apuntadores
Breve repaso de apuntadoresBreve repaso de apuntadores
Breve repaso de apuntadores
 
Arreglos conceptos básicos
Arreglos conceptos básicosArreglos conceptos básicos
Arreglos conceptos básicos
 
Resolución práctica de tipos de datos
Resolución práctica de tipos de datosResolución práctica de tipos de datos
Resolución práctica de tipos de datos
 
Resumen de funciones
Resumen de funcionesResumen de funciones
Resumen de funciones
 
Biblioteca estándar de funciones
Biblioteca estándar de funcionesBiblioteca estándar de funciones
Biblioteca estándar de funciones
 
Manejo de bits
Manejo de bitsManejo de bits
Manejo de bits
 
Aclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreAclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembre
 
Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuario
 
Función main()
Función main()Función main()
Función main()
 
Depuración de un programa en c++
Depuración de un programa en c++Depuración de un programa en c++
Depuración de un programa en c++
 
Algunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoAlgunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agosto
 
Estructura programa c++
Estructura programa c++Estructura programa c++
Estructura programa c++
 

Último

Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 

Último (20)

Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 

Análisis de complejidad algorítmica y notación Big O

  • 1. Análisis de complejidad Notación Big O
  • 2. Repaso de comportamiento asintótico • El eliminar todas estas constantes ornamentales hacen más sencillo identificar el comportamiento asintótico de una función contadora-de-instrucciones de un programa. • Cualquier programa que carezca de bucles tendrá una f(n) = 1, ya que el número de instrucciones que requiere es simplemente una constante (a menos que utilice recursión).
  • 3. Repaso de comportamiento asintótico • Cualquier programa con un único bucle que vaya desde 1 a n tendrá f(n) = n, ya que ejecutará un número fijo de instrucciones antes del bucle, un número fijo de instrucciones después del bucle y un número constante de instrucciones dentro del bucle que corre n veces.
  • 4. Regla General 1 • El análisis de programas sencillos se puede hacer contando los bucles anidados que contiene el programa. – Un sólo bucle sobre n ítems genera f(n)=n. – Un bucle dentro de otro bucle f( n ) = n2. – Un bucle dentro de un bucle que está dentro de otro bucle genera f( n ) = n3.
  • 5. Regla General 2 • Dado un conjunto de bucles que son secuenciales, el más lento de ellos determina el comportamiento asintótico del programa. • Dos bucles anidados, seguidos por un solo bucle, asintóticamente es lo mismo que los bucles anidados por sí solos, ya que los bucles anidados dominan el bucle individual.
  • 6. Notación Theta • Ahora, enfoquémonos en la sofisticada notación que los científicos computacionales utilizan. • Cuando hayamos encontrado la f asintótica exacta, diremos que nuestro programa es Θ(f( n )).
  • 7. Notación Theta • Por ejemplo, los programas anteriores son • Θ( 1 ), Θ( n2 ) y Θ( n2 ) respectivamente. • Θ(n) se pronuncia "theta de n". • A veces diremos que f(n), la función original que cuenta las instrucciones que incluyen las constantes es Θ(algo)
  • 8. Notación Theta • Por ejemplo, podremos decir que f( n ) = 2n es una función que es Θ( n ) - nada nuevo en esto. • También podremos escribir 2n ∈ Θ( n ), lo cual se pronuncia " dos n es theta de n”.
  • 9. Notación Theta • No se confunda con esta notación: Todo lo que está diciendo es que si hemos contados el número de instrucciones que un programa requiere y que si esa cantidad es 2n, entonces el comportamiento asintótico de nuestro algoritmo es descrito por n, a lo cual llegamos al eliminar las constantes.
  • 10. Notación Theta • Dada esta notación, los siguientes son algunos enunciados puramente matemáticos. n6 + 3n ∈ Θ( n6 ) 2n + 12 ∈ Θ( 2n ) 3n + 2n ∈ Θ( 3n ) nn + n ∈ Θ( nn )
  • 11. Notación Theta • Llamamos esta función, esto es, lo que colocamos dentro de Θ (aquí) como complejidad temporal, o simplemente complejidad de nuestro algoritmo.
  • 12. Notación Theta • Entonces, un algoritmo con Θ(n) es de complejidad n. • También tenemos nombres especiales para Θ(1), Θ(n), Θ(n2) y Θ(log(n)) ya que aparecen bastante seguido. • Decimos que un algoritmo Θ(1) es un algoritmo temporalmente-constante, Θ(n) es linear, θ(n2) es cuadrático y Θ(log(n)) es logarítmico
  • 13. Notación Big O • Para evaluar la complejidad de programas complicados es modificarlos mentalmente para empeorarlos de manera que sean más fáciles de analizar y luego encontrar la complejidad de este nuevo programa que generamos.
  • 14. Notación Big O • Si podemos encontrar la complejidad del programa peor, entonces sabremos que nuestro programa original es como máximo así de malo, o mejor que eso.
  • 15. Notación Big O • De esta forma, si encontramos una buena complejidad en nuestro programa modificado, el cual es peor que el original, podremos saber que nuestro programa original también tendrá una complejidad bastante buena, tan buena como la del programa alterado, o incluso mejor.
  • 16. Notación Big O • Si esto es así, diremos que el algoritmo original es O( complejidad peor ). • Por ejemplo O( n2 ) se pronuncia "O-Grande de n cuadrado". • Lo que esto nos dice es que asintóticamente nuestro programa no es peor que n2. • Puede que sea mejor que eso, o quizá es igual que eso. • Dicho sea de paso, si de hecho nuestro programa es Θ( n2 ), aún podemos decir que es O( n2 ).
  • 17. Notación Big O • Para ayudarle a entenderlo, imagine que alteramos el programa original de un modo que no cambie tanto, pero que aún así lo hace algo peor. • Por ejemplo podemos añadir instrucciones insignificantes al comienzo del programa.
  • 18. Notación Big O • Haciendo esto alteraremos la función contadora-de-instrucciones mediante una simple constante, la cual se ignora en el comportamiento asintótico. • Por esto, un programa que es Θ( n2 ) también será O( n2 ).
  • 19. Notación Big O • Pero, a la inversa, un programa que es O( n2 ) podría no ser Θ( n2 ). Por ejemplo, cualquier programa que es Θ( n ) también es O( n2 ) además de ser O( n ).
  • 20. Notación Big O • Si nos imaginamos que un programa Θ( n ) es un bucle sencillo “for” que se repite n veces, podremos empeorarlo al envolverlo en otro bucle “for” que también se repita n veces, generando así un programa con f( n ) = n2.
  • 21. Notación Big O • Si generalizamos esto, cualquier programa que sea Θ( a ) es O( b ) cuando b es peor que a. • Note que nuestra alteración al programa no tiene porqué darnos un programa que sea equivalente o comparable a nuestro programa original. • Solamente tiene realizar más instrucciones que el original para un n dado, ya que simplemente lo estaremos usando para contar instrucciones, no para resolver nuestro problema concreto.
  • 22. Notación Big O • Por tanto, afirmar que nuestro programa es O( n2 ) es quedarse a resguardo: Hemos analizado nuestro algoritmo y hemos encontrado que nunca es peor que n2. • Pero podría darse el caso de que de hecho sea n2. • Esto nos entrega un buen estimativo de qué tan rápido corre nuestro programa.
  • 23. Tarea MRR 7 • De los programas de ordenamiento que hemos visto (inserción y burbuja), modifiquen su análisis asintótico para que encuentren una notación Big O adecuada para dichos algoritmos. • En tu cuaderno MRR explica cuál es tu propuesta de modificación de los algoritmos de ordenamiento para obtener una notación Big O de los mismo. Justifica tu respuesta.
  • 24. • Entregar MRR7 el 4 de noviembre.