SlideShare una empresa de Scribd logo
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

Tema 5 ejercicio 05 - normalizacion
Tema 5   ejercicio 05 - normalizacionTema 5   ejercicio 05 - normalizacion
Tema 5 ejercicio 05 - normalizaciontmssnchzprds
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
IEO Santo Tomás
 
Lenguajes regulares
Lenguajes regularesLenguajes regulares
Lenguajes regularesKenia Adams
 
Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooProgramacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma poo
José Antonio Sandoval Acosta
 
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
Rosviannis Barreiro
 
Algoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externoAlgoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externo
Universidad de Cuenca
 
Paradigmas de la programación
Paradigmas de la programación Paradigmas de la programación
Paradigmas de la programación
Daniel Gomez Jaramillo
 
Método por plegamiento Hash
Método por plegamiento HashMétodo por plegamiento Hash
Método por plegamiento Hash
Christopher Bonilla Noguera
 
Algoritmos 50 ejemplos
Algoritmos 50 ejemplosAlgoritmos 50 ejemplos
Algoritmos 50 ejemplos
Yovanny Jose Rivero Zavala
 
Arreglos o dimensiones en pseint
Arreglos o dimensiones en pseintArreglos o dimensiones en pseint
Arreglos o dimensiones en pseint
Don Augusto
 
Operaciones entre lenguajes
Operaciones entre lenguajesOperaciones entre lenguajes
Operaciones entre lenguajes
Jean Bernard
 
Capitulo 16- Excepciones en Java
Capitulo 16- Excepciones en JavaCapitulo 16- Excepciones en Java
Capitulo 16- Excepciones en Java
Jonnathan Cuvi
 
Programacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herenciaProgramacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herencia
José Antonio Sandoval Acosta
 
Multiplicador y divisor
Multiplicador y divisorMultiplicador y divisor
Multiplicador y divisor
Alex Vasquez
 

La actualidad más candente (20)

Tema 5 ejercicio 05 - normalizacion
Tema 5   ejercicio 05 - normalizacionTema 5   ejercicio 05 - normalizacion
Tema 5 ejercicio 05 - normalizacion
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Arbol De Huffman
Arbol De HuffmanArbol De Huffman
Arbol De Huffman
 
Sjf srtf
Sjf   srtfSjf   srtf
Sjf srtf
 
Lenguajes regulares
Lenguajes regularesLenguajes regulares
Lenguajes regulares
 
Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooProgramacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma poo
 
Clases abstractas
Clases abstractasClases abstractas
Clases abstractas
 
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
 
Algoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externoAlgoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externo
 
Paradigmas de la programación
Paradigmas de la programación Paradigmas de la programación
Paradigmas de la programación
 
Convolucion
ConvolucionConvolucion
Convolucion
 
Método por plegamiento Hash
Método por plegamiento HashMétodo por plegamiento Hash
Método por plegamiento Hash
 
Algoritmos 50 ejemplos
Algoritmos 50 ejemplosAlgoritmos 50 ejemplos
Algoritmos 50 ejemplos
 
Topicos avanzados de programacion
Topicos avanzados de programacionTopicos avanzados de programacion
Topicos avanzados de programacion
 
Arreglos o dimensiones en pseint
Arreglos o dimensiones en pseintArreglos o dimensiones en pseint
Arreglos o dimensiones en pseint
 
Operaciones entre lenguajes
Operaciones entre lenguajesOperaciones entre lenguajes
Operaciones entre lenguajes
 
Capitulo 16- Excepciones en Java
Capitulo 16- Excepciones en JavaCapitulo 16- Excepciones en Java
Capitulo 16- Excepciones en Java
 
Decompilador y metacompilador
Decompilador y metacompiladorDecompilador y metacompilador
Decompilador y metacompilador
 
Programacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herenciaProgramacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herencia
 
Multiplicador y divisor
Multiplicador y divisorMultiplicador y divisor
Multiplicador y divisor
 

Similar a Análisis de complejidad big o

Notación Asintótica
Notación AsintóticaNotación Asintótica
Notación Asintótica
Fernando Solis
 
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
UVM
 
Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa Ramirez
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º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 1
Andres Garcia Garcia
 
Informe tecnico unidad 7
Informe tecnico unidad 7Informe tecnico unidad 7
Informe tecnico unidad 7
eliezerbs
 
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.pdf
CarlosJahnsen3
 
Tecnologia de informacion para uso empresarial
Tecnologia de informacion para uso empresarialTecnologia de informacion para uso empresarial
Tecnologia de informacion para uso empresarial
kike feria
 
Complemento a la base disminuida
Complemento a la base disminuidaComplemento a la base disminuida
Complemento a la base disminuidaRoberto Chen
 
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
diego alonso medina quilcat
 
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
Alvaro Enrique Ruano
 
Cap2.1
Cap2.1Cap2.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
Oriol 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 webkarenJulieth04
 

Similar a Análisis de complejidad 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
 
Tecnologia de informacion para uso empresarial
Tecnologia de informacion para uso empresarialTecnologia de informacion para uso empresarial
Tecnologia de informacion para uso empresarial
 
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
 

Más de UVM

Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programación
UVM
 
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
UVM
 
Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempo
UVM
 
Administración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosAdministración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicos
UVM
 
Practica de arreglos
Practica de arreglosPractica de arreglos
Practica de arreglos
UVM
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadores
UVM
 
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
UVM
 
Breve repaso de apuntadores
Breve repaso de apuntadoresBreve repaso de apuntadores
Breve repaso de apuntadores
UVM
 
Arreglos conceptos básicos
Arreglos conceptos básicosArreglos conceptos básicos
Arreglos conceptos básicos
UVM
 
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
UVM
 
Resumen de funciones
Resumen de funcionesResumen de funciones
Resumen de funciones
UVM
 
Biblioteca estándar de funciones
Biblioteca estándar de funcionesBiblioteca estándar de funciones
Biblioteca estándar de funciones
UVM
 
Manejo de bits
Manejo de bitsManejo de bits
Manejo de bits
UVM
 
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
UVM
 
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
UVM
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuario
UVM
 
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 agosto
UVM
 
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

Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Demetrio Ccesa Rayme
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
cintiat3400
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
BetzabePecheSalcedo1
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
Profes de Relideleón Apellidos
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
TatianaVanessaAltami
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
YolandaRodriguezChin
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
pablomarin116
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
MauricioSnchez83
 
Introducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BIIntroducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BI
arleyo2006
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
JAVIER SOLIS NOYOLA
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Txema Gs
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Demetrio Ccesa Rayme
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
LorenaCovarrubias12
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
20minutos
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
Edurne Navarro Bueno
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
Alejandrino Halire Ccahuana
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
CESAR MIJAEL ESPINOZA SALAZAR
 
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdfTexto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
ClaudiaAlcondeViadez
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
20minutos
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
YasneidyGonzalez
 

Último (20)

Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
 
Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1Mauricio-Presentación-Vacacional- 2024-1
Mauricio-Presentación-Vacacional- 2024-1
 
Introducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BIIntroducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BI
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
 
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdfTexto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
 

Análisis de complejidad 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.