SlideShare una empresa de Scribd logo
1 de 15
Análisis de complejidad 
Introducción a la notación Big-O 
http://discrete.gr/complexity/?es
Introducción 
• La complejidad de un algoritmo es una forma 
de evaluar qué tan rápido se ejecuta un 
algoritmo o programa. 
• El análisis de complejidad permite comparar 
dos algoritmos, de manera independiente de 
su implementación y nos permite explicar 
cómo se comporta a medida que aumentan 
los datos de entrada.
Introducción 
• Para analizar el comportamiento de un 
algoritmo debemos contar cuántas 
instrucciones fundamentales ejecuta el 
pedazo de código que estamos analizando. 
• Para contar cuántas instrucciones hay, 
tenemos que encontrar las instrucciones 
sencillas que pueden ser ejecutados 
directamente por la UCP
Instrucciones básicas 
• Supondremos que nuestro procesador puede 
ejecutar las siguientes instrucciones por 
separado. 
• Asignar un valor a una variable 
• Buscar el valor de un elemento particular de un 
arreglo 
• Comparar dos valores 
• Incrementar un valor 
• Operaciones aritméticas básicas
Analicemos este fragmento de código 
int M = A[0] 
for (int i=0; i<n;i++) { 
if (A[i] >= M) { 
M = A[i]; 
} 
} 
Buscar, asignar = 2 instrucciones 
1ª iteración: asignación y comparación = 
2 instrucciones 
Sig. “n” iteraciones: comparación e incremento 
=2 instrucciones 
Buscar y comparar = 2 instrucciones 
Si entra al if: encontrar y asignar 
= 2 instrucciones 
*pero no siempre ocurre* 
El ciclo for sin ninguna instrucción tiene f(n) = 4 + 2*n instrucciones. 
La cantidad de instrucciones con el if no pueden definirse tan 
fácilmente
Análisis del peor caso 
• f(n) no puede definirse tan fácilmente por que 
la cantidad de instrucciones no sólo depende 
de “n” sino también de la entrada. 
• Si A=[1,2,3,4] 
• Si A=[4,3,2,1] 
• ¿Qué es lo peor que puede ocurrir con 
nuestro algoritmo? ¿Cuándo se requerirá la 
mayor cantidad de instrucciones?
Análisis del peor caso 
• En el ejemplo, el peor caso es cuando M tiene 
que reemplazarse cada vez, y genera la mayor 
cantidad de instrucciones en el for. 
• f(n)=4 + 2n + 4n =6n+4 
• Esta función f, dado un tamaño “n” del 
problema, entrega el número de instrucciones 
que serán necesarias en el peor de los casos.
Comportamiento asintótico 
• No siempre es necesario contar las 
instrucciones, además de que la cantidad real 
de instrucciones depende del compilador y el 
lenguaje de programación. 
• Ahora encontraremos la función “f” a través 
de un filtro.
Comportamiento asintótico 
• En la función 6n + 4 tienen 2 términos: 6n y 4 
• Queremos ver cómo se comporta el algoritmo 
cuando se le trata de forma ruda (peor 
escenario) lo cual es bastante útil cuando 
comparamos algoritmos. 
• De los términos de la función vamos a ignorar 
los que crecen lentamente y mantendremos 
los que crecen rápidamente conforme “n” se 
incrementa.
Comportamiento asintótico 
• En nuestra función dejaremos el término 6n. 
• También ignoraremos a la constante que 
multiplica a “n”. f(n)=n 
• Esto de eliminar los factores y mantener el 
término de mayor crecimiento, es lo que 
denominamos “comportamiento asintótico” 
• El comportamiento asintótico de f(n)=4+6n es 
f(n)=n.
Comportamiento asintótico 
Función 
• f(n)=5n + 12 
• f(n)=109 
• f(n)=n2+3n + 112 
• f(n)= n3+1999n + 1337 
• f(n)=n + sqr(n) 
Comportamiento asintótico 
• f(n)=n 
• f(n)=1 
• f(n)=n2 
• f(n)=n3 
• f(n)=n
Ordenamiento burbuja 
ANALICEMOS LA COMPLEJIDAD Y 
COMPORTAMIENTO ASINTÓTICO DEL 
SIGUIENTE FRAGMENTO DE CÓDIGO
for (int i = 0; i<100; i++){ 
num = rand() % 100; 
if (i>0){ 
for (int j = 0; j<i; j++) 
if (num == c[j]){ 
num = rand() % 100; 
j = -1; 
} 
} 
c[i] = num; 
} 
//ordenar arreglo 
for (int x = 0; x<100; x++){ 
for (int y = 0; y<99; y++){ 
if (c[y]>c[y + 1]){ 
b = c[y]; 
c[y] = c[y + 1]; 
c[y + 1] = b; 
} 
} 
//mostrar arreglo 
for (int h = 0; h<100; h++) cout << c[h] << "t";
ANALICEMOS LA COMPLEJIDAD Y 
COMPORTAMIENTO ASINTÓTICO DEL 
ORDENAMIENTO INSERCIÓN
//ordenar arreglo 
for (int l = 0; l<99; l++){ 
pos_m = inicial(k, l); 
if (k[l]>k[pos_m]){ 
m = k[pos_m]; 
for (int g = pos_m - 1; g >= 1; g--){ 
k[g + 1] = k[g]; 
} 
k[l] = m; 
} 
for (int h = 0; h<100; h++) 
cout << k[h] << "t"; 
cout << endl; 
} 
. . . 
//parte del ordenamiento de insercion 
int inicial(int o[], int c){ 
int p = c; 
int d = o[c]; 
for (int h = c; h<100; h++){ 
if (o[h]<d){ 
d = o[h]; 
p = h; 
} 
} 
return p; 
}

Más contenido relacionado

La actualidad más candente

Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivasstarduslex
 
Teoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaTeoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaRolf Pinto
 
RED NEURONAL Backpropagation
RED NEURONAL BackpropagationRED NEURONAL Backpropagation
RED NEURONAL BackpropagationESCOM
 
Agentes reactivos basados en modelos
Agentes reactivos basados en modelosAgentes reactivos basados en modelos
Agentes reactivos basados en modelosSaúl Hulse
 
El conocimiento en Inteligencia Artificial
El conocimiento en Inteligencia ArtificialEl conocimiento en Inteligencia Artificial
El conocimiento en Inteligencia Artificialwarrionet
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Osiris Mirerus
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turingAnel Sosa
 
Introducción a la arquitectura de computadores
Introducción a la arquitectura de computadoresIntroducción a la arquitectura de computadores
Introducción a la arquitectura de computadoresJohn Espinoza
 
Representacion del Conocimiento Inteligencia Artificial
Representacion del Conocimiento Inteligencia ArtificialRepresentacion del Conocimiento Inteligencia Artificial
Representacion del Conocimiento Inteligencia Artificialjorgeescalona2387
 
Proyecto tres en_raya_f_inal_mathias_y_grupo
Proyecto tres en_raya_f_inal_mathias_y_grupoProyecto tres en_raya_f_inal_mathias_y_grupo
Proyecto tres en_raya_f_inal_mathias_y_grupoRobertho Mathias
 
Unidad no. 2 búsqueda en espacio de estados
Unidad no. 2   búsqueda en espacio de estadosUnidad no. 2   búsqueda en espacio de estados
Unidad no. 2 búsqueda en espacio de estadosMilton Klapp
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosMario Villaseñor
 
Varios Algoritmos Voraces De DecisióN Y OptimizacióN
Varios Algoritmos Voraces De DecisióN Y OptimizacióNVarios Algoritmos Voraces De DecisióN Y OptimizacióN
Varios Algoritmos Voraces De DecisióN Y OptimizacióNSalvador Fernández Fernández
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De TuringRicardo Quintero
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetosjose_rob
 

La actualidad más candente (20)

Respuestas
RespuestasRespuestas
Respuestas
 
Tutorial de JFLAP
Tutorial de JFLAPTutorial de JFLAP
Tutorial de JFLAP
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivas
 
Teoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaTeoría De La Complejidad Algoritmica
Teoría De La Complejidad Algoritmica
 
RED NEURONAL Backpropagation
RED NEURONAL BackpropagationRED NEURONAL Backpropagation
RED NEURONAL Backpropagation
 
Agentes reactivos basados en modelos
Agentes reactivos basados en modelosAgentes reactivos basados en modelos
Agentes reactivos basados en modelos
 
El conocimiento en Inteligencia Artificial
El conocimiento en Inteligencia ArtificialEl conocimiento en Inteligencia Artificial
El conocimiento en Inteligencia Artificial
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Fundamentos de BD - Unidad 5 algebra relacional
Fundamentos de BD - Unidad 5 algebra relacionalFundamentos de BD - Unidad 5 algebra relacional
Fundamentos de BD - Unidad 5 algebra relacional
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turing
 
Omega Up
Omega UpOmega Up
Omega Up
 
Introducción a la arquitectura de computadores
Introducción a la arquitectura de computadoresIntroducción a la arquitectura de computadores
Introducción a la arquitectura de computadores
 
Representacion del Conocimiento Inteligencia Artificial
Representacion del Conocimiento Inteligencia ArtificialRepresentacion del Conocimiento Inteligencia Artificial
Representacion del Conocimiento Inteligencia Artificial
 
Proyecto tres en_raya_f_inal_mathias_y_grupo
Proyecto tres en_raya_f_inal_mathias_y_grupoProyecto tres en_raya_f_inal_mathias_y_grupo
Proyecto tres en_raya_f_inal_mathias_y_grupo
 
Unidad no. 2 búsqueda en espacio de estados
Unidad no. 2   búsqueda en espacio de estadosUnidad no. 2   búsqueda en espacio de estados
Unidad no. 2 búsqueda en espacio de estados
 
Herencia - Programación Orientada a Objetos
Herencia - Programación Orientada a ObjetosHerencia - Programación Orientada a Objetos
Herencia - Programación Orientada a Objetos
 
Varios Algoritmos Voraces De DecisióN Y OptimizacióN
Varios Algoritmos Voraces De DecisióN Y OptimizacióNVarios Algoritmos Voraces De DecisióN Y OptimizacióN
Varios Algoritmos Voraces De DecisióN Y OptimizacióN
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De Turing
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetos
 

Similar a Análisis de complejidad introducción notación big o

Inf 2316(proyecto)
Inf 2316(proyecto)Inf 2316(proyecto)
Inf 2316(proyecto)jair_fni
 
Analisis Clase2
Analisis  Clase2Analisis  Clase2
Analisis Clase2luzenith_g
 
Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmosrehoscript
 
Análisis de colisiones de hashes sha1 y resolviendo un problema de hashing re...
Análisis de colisiones de hashes sha1 y resolviendo un problema de hashing re...Análisis de colisiones de hashes sha1 y resolviendo un problema de hashing re...
Análisis de colisiones de hashes sha1 y resolviendo un problema de hashing re...Diego Hernan Marciano
 
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)Rubi Veronica Chimal Cuxin
 
Análisis de complejidad big o
Análisis de complejidad  big o Análisis de complejidad  big o
Análisis de complejidad big o UVM
 
Informe tecnico unidad 7
Informe tecnico unidad 7Informe tecnico unidad 7
Informe tecnico unidad 7eliezerbs
 
Practica 01 Pruebas a posteriori.pptx
Practica 01 Pruebas a posteriori.pptxPractica 01 Pruebas a posteriori.pptx
Practica 01 Pruebas a posteriori.pptxssuserf7367f
 
Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezVanessa Ramirez
 
ANALISIS DE LOS ALGORITMOS
ANALISIS DE LOS ALGORITMOSANALISIS DE LOS ALGORITMOS
ANALISIS DE LOS ALGORITMOSerwin_alexander
 
Algoritmos de ordeamiento
Algoritmos de ordeamientoAlgoritmos de ordeamiento
Algoritmos de ordeamientoYanahui Bc
 
Algoritmos de ordenación
Algoritmos de ordenaciónAlgoritmos de ordenación
Algoritmos de ordenaciónIgnacio Reyes
 

Similar a Análisis de complejidad introducción notación big o (20)

Inf 2316(proyecto)
Inf 2316(proyecto)Inf 2316(proyecto)
Inf 2316(proyecto)
 
Analisis Clase2
Analisis  Clase2Analisis  Clase2
Analisis Clase2
 
Tema4
Tema4Tema4
Tema4
 
Complejidad Computacional
Complejidad ComputacionalComplejidad Computacional
Complejidad Computacional
 
Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmos
 
Notación Asintótica
Notación AsintóticaNotación Asintótica
Notación Asintótica
 
05 - Analisis de Algoritmos.pptx
05 - Analisis de Algoritmos.pptx05 - Analisis de Algoritmos.pptx
05 - Analisis de Algoritmos.pptx
 
Análisis de colisiones de hashes sha1 y resolviendo un problema de hashing re...
Análisis de colisiones de hashes sha1 y resolviendo un problema de hashing re...Análisis de colisiones de hashes sha1 y resolviendo un problema de hashing re...
Análisis de colisiones de hashes sha1 y resolviendo un problema de hashing re...
 
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
 
Análisis de complejidad big o
Análisis de complejidad  big o Análisis de complejidad  big o
Análisis de complejidad big o
 
Informe tecnico unidad 7
Informe tecnico unidad 7Informe tecnico unidad 7
Informe tecnico unidad 7
 
Practica 01 Pruebas a posteriori.pptx
Practica 01 Pruebas a posteriori.pptxPractica 01 Pruebas a posteriori.pptx
Practica 01 Pruebas a posteriori.pptx
 
Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa Ramirez
 
Cap2.1
Cap2.1Cap2.1
Cap2.1
 
ANALISIS DE LOS ALGORITMOS
ANALISIS DE LOS ALGORITMOSANALISIS DE LOS ALGORITMOS
ANALISIS DE LOS ALGORITMOS
 
Algoritmos de ordeamiento
Algoritmos de ordeamientoAlgoritmos de ordeamiento
Algoritmos de ordeamiento
 
Algoritmos de ordenación
Algoritmos de ordenaciónAlgoritmos de ordenación
Algoritmos de ordenación
 
AnáLisis De Algoritmos1
AnáLisis De Algoritmos1AnáLisis De Algoritmos1
AnáLisis De Algoritmos1
 
AnáLisis De Algoritmos1
AnáLisis De Algoritmos1AnáLisis De Algoritmos1
AnáLisis De Algoritmos1
 
1 unidad metodos numericos
1 unidad metodos numericos1 unidad metodos numericos
1 unidad metodos numericos
 

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

Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
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
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
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
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
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
 
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
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
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
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
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
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 

Último (20)

Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
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
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
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
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
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
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
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
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
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
 
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
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
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
 
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
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
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
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 

Análisis de complejidad introducción notación big o

  • 1. Análisis de complejidad Introducción a la notación Big-O http://discrete.gr/complexity/?es
  • 2. Introducción • La complejidad de un algoritmo es una forma de evaluar qué tan rápido se ejecuta un algoritmo o programa. • El análisis de complejidad permite comparar dos algoritmos, de manera independiente de su implementación y nos permite explicar cómo se comporta a medida que aumentan los datos de entrada.
  • 3. Introducción • Para analizar el comportamiento de un algoritmo debemos contar cuántas instrucciones fundamentales ejecuta el pedazo de código que estamos analizando. • Para contar cuántas instrucciones hay, tenemos que encontrar las instrucciones sencillas que pueden ser ejecutados directamente por la UCP
  • 4. Instrucciones básicas • Supondremos que nuestro procesador puede ejecutar las siguientes instrucciones por separado. • Asignar un valor a una variable • Buscar el valor de un elemento particular de un arreglo • Comparar dos valores • Incrementar un valor • Operaciones aritméticas básicas
  • 5. Analicemos este fragmento de código int M = A[0] for (int i=0; i<n;i++) { if (A[i] >= M) { M = A[i]; } } Buscar, asignar = 2 instrucciones 1ª iteración: asignación y comparación = 2 instrucciones Sig. “n” iteraciones: comparación e incremento =2 instrucciones Buscar y comparar = 2 instrucciones Si entra al if: encontrar y asignar = 2 instrucciones *pero no siempre ocurre* El ciclo for sin ninguna instrucción tiene f(n) = 4 + 2*n instrucciones. La cantidad de instrucciones con el if no pueden definirse tan fácilmente
  • 6. Análisis del peor caso • f(n) no puede definirse tan fácilmente por que la cantidad de instrucciones no sólo depende de “n” sino también de la entrada. • Si A=[1,2,3,4] • Si A=[4,3,2,1] • ¿Qué es lo peor que puede ocurrir con nuestro algoritmo? ¿Cuándo se requerirá la mayor cantidad de instrucciones?
  • 7. Análisis del peor caso • En el ejemplo, el peor caso es cuando M tiene que reemplazarse cada vez, y genera la mayor cantidad de instrucciones en el for. • f(n)=4 + 2n + 4n =6n+4 • Esta función f, dado un tamaño “n” del problema, entrega el número de instrucciones que serán necesarias en el peor de los casos.
  • 8. Comportamiento asintótico • No siempre es necesario contar las instrucciones, además de que la cantidad real de instrucciones depende del compilador y el lenguaje de programación. • Ahora encontraremos la función “f” a través de un filtro.
  • 9. Comportamiento asintótico • En la función 6n + 4 tienen 2 términos: 6n y 4 • Queremos ver cómo se comporta el algoritmo cuando se le trata de forma ruda (peor escenario) lo cual es bastante útil cuando comparamos algoritmos. • De los términos de la función vamos a ignorar los que crecen lentamente y mantendremos los que crecen rápidamente conforme “n” se incrementa.
  • 10. Comportamiento asintótico • En nuestra función dejaremos el término 6n. • También ignoraremos a la constante que multiplica a “n”. f(n)=n • Esto de eliminar los factores y mantener el término de mayor crecimiento, es lo que denominamos “comportamiento asintótico” • El comportamiento asintótico de f(n)=4+6n es f(n)=n.
  • 11. Comportamiento asintótico Función • f(n)=5n + 12 • f(n)=109 • f(n)=n2+3n + 112 • f(n)= n3+1999n + 1337 • f(n)=n + sqr(n) Comportamiento asintótico • f(n)=n • f(n)=1 • f(n)=n2 • f(n)=n3 • f(n)=n
  • 12. Ordenamiento burbuja ANALICEMOS LA COMPLEJIDAD Y COMPORTAMIENTO ASINTÓTICO DEL SIGUIENTE FRAGMENTO DE CÓDIGO
  • 13. for (int i = 0; i<100; i++){ num = rand() % 100; if (i>0){ for (int j = 0; j<i; j++) if (num == c[j]){ num = rand() % 100; j = -1; } } c[i] = num; } //ordenar arreglo for (int x = 0; x<100; x++){ for (int y = 0; y<99; y++){ if (c[y]>c[y + 1]){ b = c[y]; c[y] = c[y + 1]; c[y + 1] = b; } } //mostrar arreglo for (int h = 0; h<100; h++) cout << c[h] << "t";
  • 14. ANALICEMOS LA COMPLEJIDAD Y COMPORTAMIENTO ASINTÓTICO DEL ORDENAMIENTO INSERCIÓN
  • 15. //ordenar arreglo for (int l = 0; l<99; l++){ pos_m = inicial(k, l); if (k[l]>k[pos_m]){ m = k[pos_m]; for (int g = pos_m - 1; g >= 1; g--){ k[g + 1] = k[g]; } k[l] = m; } for (int h = 0; h<100; h++) cout << k[h] << "t"; cout << endl; } . . . //parte del ordenamiento de insercion int inicial(int o[], int c){ int p = c; int d = o[c]; for (int h = c; h<100; h++){ if (o[h]<d){ d = o[h]; p = h; } } return p; }