SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
Complejidad

 Apoyo SSD5
Introducción
Complejidad es la medida del uso de
algún recurso por parte de un algoritmo.
Estos recursos pueden ser requerimientos
de almacenamiento, memoria o tiempo.




                Mtl Lourdes Cahuich    2
Tiempo de un algoritmo
Por lo general, la cantidad de tiempo que
un algoritmo toma para completarse es el
recurso más frecuentemente encontrado
en el contexto de complejidad




                Mtl Lourdes Cahuich         3
Análisis Asintótico
El análisis asintótico es la determinación
de la cantidad de recursos usados por un
algoritmo.
Usualmente, este recurso es el tiempo de
ejecución del algoritmo.
El tiempo de ejecución de un programa es
sobre todo una cantidad física.


                 Mtl Lourdes Cahuich         4
Análisis asintótico
En principio, podemos detenernos a mirar
y ver cuánto tiempo toma el programa
para ejecutarse.
De hecho, todos los sistemas
computacionales soportan un reloj interno,
y uno puede medir el tiempo de ejecución
aún sin la ayuda de un dispositivo externo
para hacerlo

                Mtl Lourdes Cahuich      5
Tiempo de ejecución
El primer aspecto a notar es que el tiempo
de ejecución no es una cantidad fija, al
contrario, el tiempo de ejecución en casi
todos los programas depende de la
entrada específica proporcionada al
programa.



                 Mtl Lourdes Cahuich     6
Tiempo de ejecución
Los tiempos de ejecución pueden diferir
drásticamente.
Sin embargo, se acostumbra referir el
tiempo de ejecución de un programa como
una entrada de tamaño n, significando el
peor tiempo posible de ejecución para
todas esas entradas.


                Mtl Lourdes Cahuich    7
Complejidad en el peor caso
Esta medida es llamada complejidad del
peor caso
De forma alternativa, podemos analizar el
promedio de tiempo que toma procesar
una entrada de cierto tamaño, lo que es
llamado complejidad del caso promedio.



                Mtl Lourdes Cahuich         8
Complejidad
Desafortunadamente, este último es más
difícil de tratar que el primero, por lo que
nos enfocaremos en la complejidad del
peor caso




                  Mtl Lourdes Cahuich          9
Problemas para medir el tiempo
 Otro problema al medir el tiempo de
 ejecución es que éste obviamente
 depende mucho de la máquina usada
 para ejecutar el programa.
 También, depende del compilador usado,
 el nivel de optimización, la carga de la
 computadora, etc


                 Mtl Lourdes Cahuich        10
Tiempo lógico de ejecución
Para evitar estas complicaciones,
podemos usar una medida diferente:
tiempo de ejecución lógico, el cual es el
número de pasos en la ejecución del
algoritmo.
Por quot;un pasoquot; nos referimos
esencialmente a un ciclo de CPU


                 Mtl Lourdes Cahuich        11
Tiempo lógico de ejecución
El contar el número de pasos nos permite
tener una medida útil del tiempo de
ejecución.
Sin embargo, si un algoritmo va a ser
ejecutado en una computadora específica,
es todavía necesario desarrollar medidas
del tiempo de ejecución en unas cuantos
casos.

                Mtl Lourdes Cahuich    12
¿Cómo Determinar el Tiempo de
     Ejecución Lógico?
Es importante ignorar los pequeños
detalles y ver el comportamiento a gran-
escala
Usemos un ejemplo para explicar cómo
determinar el tiempo lógico de ejecución




                 Mtl Lourdes Cahuich       13
Determinar el tiempo lógico
Considera el algoritmo de ordenación por
selección.
De este programa, establecer las
variables locales toma un número
pequeño y constante de pasos




                Mtl Lourdes Cahuich        14
Determinar el tiempo lógico
Si recuerdan el algoritmo de ordenamiento
por selección, cada elemento se
comparaba contra todos los demás y en
cada paso se ubica un elemento en la
posición correspondiente




                Mtl Lourdes Cahuich     15
Determinar el tiempo lógico
El cuerpo del bucle externo es ejecutado
v.size() - 1 veces, donde v.size()
es el número de elementos vector
Definiremos a n como el número de
elementos en el vector




                Mtl Lourdes Cahuich        16
Determinar el tiempo lógico
Durante su primera ejecución, el bucle
interno itera (n - 1) veces.
Durante su segunda ejecución (cuando i
iguala a 1), el bucle interno itera (n - 2)
veces.




                  Mtl Lourdes Cahuich         17
Determinar el tiempo lógico
El cuerpo de este bucle interno contiene
un estatuto-if.
Este estatuto puede ser ejecutado en una
cantidad constante de tiempo.




                Mtl Lourdes Cahuich        18
Determinar el tiempo lógico
Por lo tanto, tenemos la siguiente suma
que representa el número de operaciones
desarrolladas usando ordenación por
selección.




                Mtl Lourdes Cahuich       19
Diferencias en los tiempos de los
           algoritmos
Cada término de esta suma representa el
número de pasos desarrollados por cada
iteración del bucle externo.
(n - 1) + (n - 2) + (n - 3) + ... + 3 + 2 + 1




                  Mtl Lourdes Cahuich           20
Diferencias en los tiempos de los
           algoritmos
La suma de esta expresión iguala a (n2 -
n) / 2.
Resumiremos este resultado diciendo que
la ordenación por selección es un
algoritmo cuadrático.




                Mtl Lourdes Cahuich    21
Diferencias en los tiempos de los
           algoritmos
Observa que cuadrático significa que al
duplicar el tamaño de la entrada resultará
en un incremento cuádruple en el tiempo
de ejecución




                 Mtl Lourdes Cahuich         22
Diferencias en los tiempos de los
           algoritmos
Una entrada diez veces más grande
tomará cien veces más en procesarse.
En otras palabras, los algoritmos
cuadráticos no escalan muy bien las
entradas grandes.




               Mtl Lourdes Cahuich     23
Diferencias en los tiempos de los
           algoritmos
Lo opuesto a los algoritmos cuadráticos
son los algoritmos logarítmicos.
En los algoritmos logarítmicos, el número
de pasos requeridos para solucionar un
problema no se incrementa de manera
significativa cuando el número de
entradas se incrementa dramáticamente.


                 Mtl Lourdes Cahuich        24
Diferencias en los tiempos de los
           algoritmos
Un ejemplo de algoritmo logarítmico es
una búsqueda binaria.
En una búsqueda binaria, el número de
elementos (la entrada) en donde se
realiza la búsqueda se reduce a la mitad
en cada pasada.



                Mtl Lourdes Cahuich        25
Diferencias en los tiempos de los
           algoritmos
Esto permite que la búsqueda binaria
trabaje muy bien aún en conjuntos de
datos muy grandes.




                Mtl Lourdes Cahuich    26
Notación Big-Oh
La notación Big-Oh ofrece una buena
opción para comparar el tiempo de
ejecución de los algoritmos.
En un análisis asintótico, usamos la
notación Big-Oh para referirnos al orden
más alto, o término más dominante del
análisis del tiempo de ejecución de una
función

                 Mtl Lourdes Cahuich       27
Big Oh (orden)
La propiedad más importante de la
notación Big-Oh es que nos permite
ignorar términos y constantes de orden
bajo, como en el siguiente ejemplo.

500n3 + 10n2 + 17n + 121345 = O(n3)



                Mtl Lourdes Cahuich      28
Diferencias en los tiempos de los
           algoritmos
En el ejemplo anterior, el término de orden
más alto en la ecuación del tiempo de
ejecución es 500n3.
Como lo hicimos con los términos de
orden bajo, también podemos ignorar la
constante en este término y establecer
que el tiempo de ejecución es O(n3).


                 Mtl Lourdes Cahuich      29
Diferencias en los tiempos de los
           algoritmos
La mayoría de los algoritmos que encontramos
caen en alguna de las siguientes clases.
  O(1) – tiempo constante
  O(log(n)) – tiempo logarítmico
  O(n) – tiempo lineal
  O(n log(n)) – tiempo quot;n-log-nquot;
  O(n2) – tiempo cuadrático
  O(n3) – tiempo cúbico
  O(2n) – tiempo exponencial


                     Mtl Lourdes Cahuich       30
Diferencias en los tiempos de los
           algoritmos
Los algoritmos que tiene un tiempo de
ejecución arriba de O( n log(n)) escalan
muy bien a instancias de problemas
grandes.




                 Mtl Lourdes Cahuich       31
Diferencias en los tiempos de los
           algoritmos
Los algoritmos cuadráticos y más aún los
algoritmos cúbicos, muestran un
desempeño muy degradado cuando la
entrada es grande.
Por último, los algoritmos exponenciales
pueden ser usados solamente con
entradas muy pequeñas


                Mtl Lourdes Cahuich        32
Diferencias en los tiempos de los
           algoritmos
Es importante expresar el tiempo de
ejecución lógico en términos del tiempo
físico, usando unidades familiares como
segundos, minutos, horas, etc., para tener
una idea de lo que estas caracterizaciones
realmente significan.



                Mtl Lourdes Cahuich      33
Primero, consideremos un algoritmo O(n
log(n)) que toma 1 segundo en una
entrada de tamaño 1000

     tamaño de la entrada          tiempo de ejecución
   1000                        1 segundo
   2000                        2.2 segundos
   5000                        6.2 segundos
   10000                       13.3 segundos
   100000                      2.77 minutos
   106                         33.3 minutos
   107                         6.48 horas
                        Mtl Lourdes Cahuich              34
En comparación, aquí se muestra un
algoritmo cuadrático que también toma 1
segundo en una entrada de tamaño 1000.
    tamaño de la entrada        tiempo de ejecución
    1000                        1 segundo
    2000                        4 segundos
    5000                        25 segundos
    10000                       1.66 minutos
    100000                      2.77 horas
    106                         11.5 días
    107                         3.25 años
                    Mtl Lourdes Cahuich               35
Imagina que un algoritmo exponencial
toma un segundo en una entrada de
tamaño 10.
Podemos esperar aproximadamente los
siguientes tiempos de ejecución para
instancias más grandes




               Mtl Lourdes Cahuich     36
Ejecución exponencial
  tamaño de la entrada          tiempo de ejecución
10                            1 segundo
15                            32 segundos
20                            17.1 minutos
25                            9.1 horas
30                            12.1 días
35                            1.09 años
40                            34.9 años
50                            35700 años
100                           4.02 1019 años
                    Mtl Lourdes Cahuich               37
Desafortunadamente, existen algunos
problemas computacionales famosos que
parecen requerir tiempos de ejecución
exponencial
Encontrar si un circuito booleano con n
entradas puede producir siempre
quot;verdaderoquot; como resultado es uno de
ellos: existen 2n combinaciones posibles
de entrada, y no se conocen atajos para
simplificar el cálculo.
                Mtl Lourdes Cahuich        38
¿Cómo determinamos el
tiempo de ejecución asintótico
      de un algoritmo?
Determinar el tiempo en cada
          algoritmo
cualquier secuencia de estatutos básicos,
como 1)tareas de tipo incorporado ó 2)
operaciones de tipo incorporado (suma,
multiplicación, comparación, incremento,
decremento, operaciones booleanas, etc.),
toman tiempo constante (O(1)).



                Mtl Lourdes Cahuich     40
Determinar el tiempo en cada
          algoritmo
Las llamadas a la función tienen que ser
contabilizadas por separado.
Primero, está el costo de organizar la
llamada de la función.
Si sólo se usan parámetros de referencia,
este costo es O(1).



                Mtl Lourdes Cahuich         41
Determinar el tiempo en cada
          algoritmo
Pero, si se invoca-por-valor, tenemos que
contar el costo de copiar la entrada.
El mismo comentario aplica para regresar
el resultado del cálculo.
Y, por supuesto, tenemos que contar la
evaluación del cuerpo de la función



                Mtl Lourdes Cahuich         42
Determinar el tiempo en cada
            algoritmo
 Un bucle-for toma el tiempo t(0) + t(1) + ...
 + t(n-1) donde t(k) es el tiempo requerido
 por el cuerpo del bucle cuando i iguala a
 k, en otras palabras, el tiempo requerido
 para completar la iteración k del bucle-for

for (int i = 0; i < n; ++i)
  {
   cuerpo
}

                   Mtl Lourdes Cahuich       43
Determinar el tiempo en cada
          algoritmo
Si el cuerpo se toma el tiempo O(1), el
tiempo del bucle resulta en O(n).
Pero, si el cuerpo se toma el tiempo O(i),
obtenemos O(n2) para el bucle completo.
Por último, si el cuerpo se toma el tiempo
O(i2) obtenemos O(n3) para el bucle
completo


                 Mtl Lourdes Cahuich         44
Determinar el tiempo en cada
          algoritmo
Otras estructuras de bucle pueden ser
manejadas de la misma forma.
Agrega el costo de cada ejecución
individual del cuerpo del bucle, tomando
en cuenta que este costo puede depender
de los valores de algunos parámetros del
bucle.


                Mtl Lourdes Cahuich    45

Más contenido relacionado

La actualidad más candente

Microcontroladores Registro Timer_0
Microcontroladores Registro Timer_0 Microcontroladores Registro Timer_0
Microcontroladores Registro Timer_0 electro_pic
 
Eficiencia en uso en algoritmos- tiempo de ejecución
Eficiencia en uso en algoritmos- tiempo de ejecuciónEficiencia en uso en algoritmos- tiempo de ejecución
Eficiencia en uso en algoritmos- tiempo de ejecuciónUVM
 
Analisis de Algoritmos
Analisis de AlgoritmosAnalisis de Algoritmos
Analisis de AlgoritmosSilvana Vargas
 
Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezVanessa Ramirez
 
Balance de linea
Balance de lineaBalance de linea
Balance de lineaDAOCGUE
 
Sistema De Control En Tiempo Discreto 10% - Andres C.
Sistema De Control En Tiempo Discreto 10% - Andres C.Sistema De Control En Tiempo Discreto 10% - Andres C.
Sistema De Control En Tiempo Discreto 10% - Andres C.AndresCova2
 
Control digital: Tarea 1 de la unidad 1 de control digital
Control digital: Tarea 1 de la unidad 1 de control digitalControl digital: Tarea 1 de la unidad 1 de control digital
Control digital: Tarea 1 de la unidad 1 de control digitalSANTIAGO PABLO ALBERTO
 
Manual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datosManual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datosJuan Timoteo Cori
 
Sistemas de control digital con matlab y labview
Sistemas de control digital con matlab y labviewSistemas de control digital con matlab y labview
Sistemas de control digital con matlab y labviewJosue Rivera
 

La actualidad más candente (20)

Complejidad de Algoritmos
Complejidad de AlgoritmosComplejidad de Algoritmos
Complejidad de Algoritmos
 
Tres historias
Tres historiasTres historias
Tres historias
 
Microcontroladores Registro Timer_0
Microcontroladores Registro Timer_0 Microcontroladores Registro Timer_0
Microcontroladores Registro Timer_0
 
AnáLisis De Algoritmos1
AnáLisis De Algoritmos1AnáLisis De Algoritmos1
AnáLisis De Algoritmos1
 
Complejidad de algoritmos
Complejidad de algoritmos Complejidad de algoritmos
Complejidad de algoritmos
 
Eficiencia en uso en algoritmos- tiempo de ejecución
Eficiencia en uso en algoritmos- tiempo de ejecuciónEficiencia en uso en algoritmos- tiempo de ejecución
Eficiencia en uso en algoritmos- tiempo de ejecución
 
Analisis de Algoritmos
Analisis de AlgoritmosAnalisis de Algoritmos
Analisis de Algoritmos
 
Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa Ramirez
 
Balance de linea
Balance de lineaBalance de linea
Balance de linea
 
Sistema De Control En Tiempo Discreto 10% - Andres C.
Sistema De Control En Tiempo Discreto 10% - Andres C.Sistema De Control En Tiempo Discreto 10% - Andres C.
Sistema De Control En Tiempo Discreto 10% - Andres C.
 
Control Multifrecuencia
Control MultifrecuenciaControl Multifrecuencia
Control Multifrecuencia
 
Control digital: Tarea 1 de la unidad 1 de control digital
Control digital: Tarea 1 de la unidad 1 de control digitalControl digital: Tarea 1 de la unidad 1 de control digital
Control digital: Tarea 1 de la unidad 1 de control digital
 
09 rendimiento cpu (1)
09 rendimiento cpu (1)09 rendimiento cpu (1)
09 rendimiento cpu (1)
 
Gazmuri sem2
Gazmuri sem2Gazmuri sem2
Gazmuri sem2
 
Deadlock
DeadlockDeadlock
Deadlock
 
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
 
Subrutinas de retardo
Subrutinas de retardoSubrutinas de retardo
Subrutinas de retardo
 
EVALUACION DE ALGORTIMOS
EVALUACION DE ALGORTIMOSEVALUACION DE ALGORTIMOS
EVALUACION DE ALGORTIMOS
 
Manual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datosManual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datos
 
Sistemas de control digital con matlab y labview
Sistemas de control digital con matlab y labviewSistemas de control digital con matlab y labview
Sistemas de control digital con matlab y labview
 

Similar a 16 Complejidad (20)

Round robin apa
Round robin apaRound robin apa
Round robin apa
 
Cap2.1
Cap2.1Cap2.1
Cap2.1
 
AnáLisis De Algoritmos1
AnáLisis De Algoritmos1AnáLisis De Algoritmos1
AnáLisis De Algoritmos1
 
Notación Asintótica
Notación AsintóticaNotación Asintótica
Notación Asintótica
 
Rendimiento del CPU
Rendimiento del CPURendimiento del CPU
Rendimiento del CPU
 
Teoría de complejidad computacional (tcc)
Teoría de complejidad computacional (tcc)Teoría de complejidad computacional (tcc)
Teoría de complejidad computacional (tcc)
 
ANALISIS DE LOS ALGORITMOS
ANALISIS DE LOS ALGORITMOSANALISIS DE LOS ALGORITMOS
ANALISIS DE LOS ALGORITMOS
 
Complejidad Computacional
Complejidad ComputacionalComplejidad Computacional
Complejidad Computacional
 
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)
 
09 rendimiento cpu
09 rendimiento cpu09 rendimiento cpu
09 rendimiento cpu
 
analisis de los algoritmos
analisis de los algoritmosanalisis de los algoritmos
analisis de los algoritmos
 
Paralelismo
ParalelismoParalelismo
Paralelismo
 
05 - Analisis de Algoritmos.pptx
05 - Analisis de Algoritmos.pptx05 - Analisis de Algoritmos.pptx
05 - Analisis de Algoritmos.pptx
 
Cronometraje industrial
Cronometraje industrialCronometraje industrial
Cronometraje industrial
 
Complejidad de Algoritmos
Complejidad de AlgoritmosComplejidad de Algoritmos
Complejidad de Algoritmos
 
05 guia-arena
05 guia-arena05 guia-arena
05 guia-arena
 
Metrica rendimiento ec4
Metrica rendimiento ec4Metrica rendimiento ec4
Metrica rendimiento ec4
 
Conceptos
ConceptosConceptos
Conceptos
 
Estructura de dato unidad 7
Estructura de dato unidad 7Estructura de dato unidad 7
Estructura de dato unidad 7
 
4 tiempos
4 tiempos4 tiempos
4 tiempos
 

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

DO_FCE_310_PO_.pdf. La contabilidad gubernamental SOS de suma importancia fu...
DO_FCE_310_PO_.pdf.  La contabilidad gubernamental SOS de suma importancia fu...DO_FCE_310_PO_.pdf.  La contabilidad gubernamental SOS de suma importancia fu...
DO_FCE_310_PO_.pdf. La contabilidad gubernamental SOS de suma importancia fu...ssuser2887fd1
 
PPT Empresas IANSA Sobre Recursos Humanos.pdf
PPT Empresas IANSA Sobre Recursos Humanos.pdfPPT Empresas IANSA Sobre Recursos Humanos.pdf
PPT Empresas IANSA Sobre Recursos Humanos.pdfihmorales
 
PPT Trabajo de Investigacion sobre Plan de Desarrollo Paraguay 2030 Adriana R...
PPT Trabajo de Investigacion sobre Plan de Desarrollo Paraguay 2030 Adriana R...PPT Trabajo de Investigacion sobre Plan de Desarrollo Paraguay 2030 Adriana R...
PPT Trabajo de Investigacion sobre Plan de Desarrollo Paraguay 2030 Adriana R...AdrianaCarmenRojasDe
 
Rendicion de cuentas del Administrador de Condominios
Rendicion de cuentas del Administrador de CondominiosRendicion de cuentas del Administrador de Condominios
Rendicion de cuentas del Administrador de CondominiosCondor Tuyuyo
 
estadistica funcion distribucion normal.ppt
estadistica funcion distribucion normal.pptestadistica funcion distribucion normal.ppt
estadistica funcion distribucion normal.pptMiguelAngel653470
 
Pensamiento Lógico - Matemático USB Empresas
Pensamiento Lógico - Matemático USB EmpresasPensamiento Lógico - Matemático USB Empresas
Pensamiento Lógico - Matemático USB Empresasanglunal456
 
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASA
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASAPLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASA
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASAAlexandraSalgado28
 
Proyecto TRIBUTACION APLICADA-1.pdf impuestos nacionales
Proyecto TRIBUTACION APLICADA-1.pdf impuestos nacionalesProyecto TRIBUTACION APLICADA-1.pdf impuestos nacionales
Proyecto TRIBUTACION APLICADA-1.pdf impuestos nacionalesjimmyrocha6
 
AFILIACION CAJA NACIONAL DE SALUD WOM 1 .pdf
AFILIACION CAJA NACIONAL DE SALUD WOM 1 .pdfAFILIACION CAJA NACIONAL DE SALUD WOM 1 .pdf
AFILIACION CAJA NACIONAL DE SALUD WOM 1 .pdfOdallizLucanaJalja1
 
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptx
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptxT.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptx
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptxLizCarolAmasifuenIba
 
JOSSELYN SALINfffffffAS- CAPITULO 4 Y 5.pptx
JOSSELYN SALINfffffffAS- CAPITULO 4 Y 5.pptxJOSSELYN SALINfffffffAS- CAPITULO 4 Y 5.pptx
JOSSELYN SALINfffffffAS- CAPITULO 4 Y 5.pptxJosVidal41
 
Presentación La mujer en la Esperanza AC.pptx
Presentación La mujer en la Esperanza AC.pptxPresentación La mujer en la Esperanza AC.pptx
Presentación La mujer en la Esperanza AC.pptxDanielFerreiraDuran1
 
Evaluacion Final de logistica - trabajo final
Evaluacion Final de logistica - trabajo finalEvaluacion Final de logistica - trabajo final
Evaluacion Final de logistica - trabajo finalssuser4a0361
 
Continex para educación, Portafolio de servicios
Continex para educación, Portafolio de serviciosContinex para educación, Portafolio de servicios
Continex para educación, Portafolio de serviciosFundación YOD YOD
 
Clima-laboral-estrategias-de-medicion-e-book-1.pdf
Clima-laboral-estrategias-de-medicion-e-book-1.pdfClima-laboral-estrategias-de-medicion-e-book-1.pdf
Clima-laboral-estrategias-de-medicion-e-book-1.pdfConstructiva
 
CODIGO DE ETICA PARA EL PROFESIONAL DE LA CONTABILIDAD IFAC (4).pdf
CODIGO DE ETICA PARA EL PROFESIONAL DE LA CONTABILIDAD IFAC (4).pdfCODIGO DE ETICA PARA EL PROFESIONAL DE LA CONTABILIDAD IFAC (4).pdf
CODIGO DE ETICA PARA EL PROFESIONAL DE LA CONTABILIDAD IFAC (4).pdfmelissafelipe28
 
MANUAL SKIDDER manual manual manual manua
MANUAL SKIDDER manual manual manual manuaMANUAL SKIDDER manual manual manual manua
MANUAL SKIDDER manual manual manual manuaasesoriam4m
 
La electrónica y electricidad finall.pdf
La electrónica y electricidad finall.pdfLa electrónica y electricidad finall.pdf
La electrónica y electricidad finall.pdfDiegomauricioMedinam
 
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdf
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdfT.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdf
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdfLizCarolAmasifuenIba
 
sistemas de produccion de la palta en el peru moises.pptx
sistemas de produccion de la palta en el peru moises.pptxsistemas de produccion de la palta en el peru moises.pptx
sistemas de produccion de la palta en el peru moises.pptxJaredmoisesCarrillo
 

Último (20)

DO_FCE_310_PO_.pdf. La contabilidad gubernamental SOS de suma importancia fu...
DO_FCE_310_PO_.pdf.  La contabilidad gubernamental SOS de suma importancia fu...DO_FCE_310_PO_.pdf.  La contabilidad gubernamental SOS de suma importancia fu...
DO_FCE_310_PO_.pdf. La contabilidad gubernamental SOS de suma importancia fu...
 
PPT Empresas IANSA Sobre Recursos Humanos.pdf
PPT Empresas IANSA Sobre Recursos Humanos.pdfPPT Empresas IANSA Sobre Recursos Humanos.pdf
PPT Empresas IANSA Sobre Recursos Humanos.pdf
 
PPT Trabajo de Investigacion sobre Plan de Desarrollo Paraguay 2030 Adriana R...
PPT Trabajo de Investigacion sobre Plan de Desarrollo Paraguay 2030 Adriana R...PPT Trabajo de Investigacion sobre Plan de Desarrollo Paraguay 2030 Adriana R...
PPT Trabajo de Investigacion sobre Plan de Desarrollo Paraguay 2030 Adriana R...
 
Rendicion de cuentas del Administrador de Condominios
Rendicion de cuentas del Administrador de CondominiosRendicion de cuentas del Administrador de Condominios
Rendicion de cuentas del Administrador de Condominios
 
estadistica funcion distribucion normal.ppt
estadistica funcion distribucion normal.pptestadistica funcion distribucion normal.ppt
estadistica funcion distribucion normal.ppt
 
Pensamiento Lógico - Matemático USB Empresas
Pensamiento Lógico - Matemático USB EmpresasPensamiento Lógico - Matemático USB Empresas
Pensamiento Lógico - Matemático USB Empresas
 
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASA
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASAPLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASA
PLANILLA DE CONTROL LIMPIEZA TRAMPA DE GRASA
 
Proyecto TRIBUTACION APLICADA-1.pdf impuestos nacionales
Proyecto TRIBUTACION APLICADA-1.pdf impuestos nacionalesProyecto TRIBUTACION APLICADA-1.pdf impuestos nacionales
Proyecto TRIBUTACION APLICADA-1.pdf impuestos nacionales
 
AFILIACION CAJA NACIONAL DE SALUD WOM 1 .pdf
AFILIACION CAJA NACIONAL DE SALUD WOM 1 .pdfAFILIACION CAJA NACIONAL DE SALUD WOM 1 .pdf
AFILIACION CAJA NACIONAL DE SALUD WOM 1 .pdf
 
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptx
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptxT.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptx
T.A CONSTRUCCION DEL PUERTO DE CHANCAY.pptx
 
JOSSELYN SALINfffffffAS- CAPITULO 4 Y 5.pptx
JOSSELYN SALINfffffffAS- CAPITULO 4 Y 5.pptxJOSSELYN SALINfffffffAS- CAPITULO 4 Y 5.pptx
JOSSELYN SALINfffffffAS- CAPITULO 4 Y 5.pptx
 
Presentación La mujer en la Esperanza AC.pptx
Presentación La mujer en la Esperanza AC.pptxPresentación La mujer en la Esperanza AC.pptx
Presentación La mujer en la Esperanza AC.pptx
 
Evaluacion Final de logistica - trabajo final
Evaluacion Final de logistica - trabajo finalEvaluacion Final de logistica - trabajo final
Evaluacion Final de logistica - trabajo final
 
Continex para educación, Portafolio de servicios
Continex para educación, Portafolio de serviciosContinex para educación, Portafolio de servicios
Continex para educación, Portafolio de servicios
 
Clima-laboral-estrategias-de-medicion-e-book-1.pdf
Clima-laboral-estrategias-de-medicion-e-book-1.pdfClima-laboral-estrategias-de-medicion-e-book-1.pdf
Clima-laboral-estrategias-de-medicion-e-book-1.pdf
 
CODIGO DE ETICA PARA EL PROFESIONAL DE LA CONTABILIDAD IFAC (4).pdf
CODIGO DE ETICA PARA EL PROFESIONAL DE LA CONTABILIDAD IFAC (4).pdfCODIGO DE ETICA PARA EL PROFESIONAL DE LA CONTABILIDAD IFAC (4).pdf
CODIGO DE ETICA PARA EL PROFESIONAL DE LA CONTABILIDAD IFAC (4).pdf
 
MANUAL SKIDDER manual manual manual manua
MANUAL SKIDDER manual manual manual manuaMANUAL SKIDDER manual manual manual manua
MANUAL SKIDDER manual manual manual manua
 
La electrónica y electricidad finall.pdf
La electrónica y electricidad finall.pdfLa electrónica y electricidad finall.pdf
La electrónica y electricidad finall.pdf
 
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdf
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdfT.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdf
T.A- CONTRUCCION DEL PUERTO DE CHANCAY.pdf
 
sistemas de produccion de la palta en el peru moises.pptx
sistemas de produccion de la palta en el peru moises.pptxsistemas de produccion de la palta en el peru moises.pptx
sistemas de produccion de la palta en el peru moises.pptx
 

16 Complejidad

  • 2. Introducción Complejidad es la medida del uso de algún recurso por parte de un algoritmo. Estos recursos pueden ser requerimientos de almacenamiento, memoria o tiempo. Mtl Lourdes Cahuich 2
  • 3. Tiempo de un algoritmo Por lo general, la cantidad de tiempo que un algoritmo toma para completarse es el recurso más frecuentemente encontrado en el contexto de complejidad Mtl Lourdes Cahuich 3
  • 4. Análisis Asintótico El análisis asintótico es la determinación de la cantidad de recursos usados por un algoritmo. Usualmente, este recurso es el tiempo de ejecución del algoritmo. El tiempo de ejecución de un programa es sobre todo una cantidad física. Mtl Lourdes Cahuich 4
  • 5. Análisis asintótico En principio, podemos detenernos a mirar y ver cuánto tiempo toma el programa para ejecutarse. De hecho, todos los sistemas computacionales soportan un reloj interno, y uno puede medir el tiempo de ejecución aún sin la ayuda de un dispositivo externo para hacerlo Mtl Lourdes Cahuich 5
  • 6. Tiempo de ejecución El primer aspecto a notar es que el tiempo de ejecución no es una cantidad fija, al contrario, el tiempo de ejecución en casi todos los programas depende de la entrada específica proporcionada al programa. Mtl Lourdes Cahuich 6
  • 7. Tiempo de ejecución Los tiempos de ejecución pueden diferir drásticamente. Sin embargo, se acostumbra referir el tiempo de ejecución de un programa como una entrada de tamaño n, significando el peor tiempo posible de ejecución para todas esas entradas. Mtl Lourdes Cahuich 7
  • 8. Complejidad en el peor caso Esta medida es llamada complejidad del peor caso De forma alternativa, podemos analizar el promedio de tiempo que toma procesar una entrada de cierto tamaño, lo que es llamado complejidad del caso promedio. Mtl Lourdes Cahuich 8
  • 9. Complejidad Desafortunadamente, este último es más difícil de tratar que el primero, por lo que nos enfocaremos en la complejidad del peor caso Mtl Lourdes Cahuich 9
  • 10. Problemas para medir el tiempo Otro problema al medir el tiempo de ejecución es que éste obviamente depende mucho de la máquina usada para ejecutar el programa. También, depende del compilador usado, el nivel de optimización, la carga de la computadora, etc Mtl Lourdes Cahuich 10
  • 11. Tiempo lógico de ejecución Para evitar estas complicaciones, podemos usar una medida diferente: tiempo de ejecución lógico, el cual es el número de pasos en la ejecución del algoritmo. Por quot;un pasoquot; nos referimos esencialmente a un ciclo de CPU Mtl Lourdes Cahuich 11
  • 12. Tiempo lógico de ejecución El contar el número de pasos nos permite tener una medida útil del tiempo de ejecución. Sin embargo, si un algoritmo va a ser ejecutado en una computadora específica, es todavía necesario desarrollar medidas del tiempo de ejecución en unas cuantos casos. Mtl Lourdes Cahuich 12
  • 13. ¿Cómo Determinar el Tiempo de Ejecución Lógico? Es importante ignorar los pequeños detalles y ver el comportamiento a gran- escala Usemos un ejemplo para explicar cómo determinar el tiempo lógico de ejecución Mtl Lourdes Cahuich 13
  • 14. Determinar el tiempo lógico Considera el algoritmo de ordenación por selección. De este programa, establecer las variables locales toma un número pequeño y constante de pasos Mtl Lourdes Cahuich 14
  • 15. Determinar el tiempo lógico Si recuerdan el algoritmo de ordenamiento por selección, cada elemento se comparaba contra todos los demás y en cada paso se ubica un elemento en la posición correspondiente Mtl Lourdes Cahuich 15
  • 16. Determinar el tiempo lógico El cuerpo del bucle externo es ejecutado v.size() - 1 veces, donde v.size() es el número de elementos vector Definiremos a n como el número de elementos en el vector Mtl Lourdes Cahuich 16
  • 17. Determinar el tiempo lógico Durante su primera ejecución, el bucle interno itera (n - 1) veces. Durante su segunda ejecución (cuando i iguala a 1), el bucle interno itera (n - 2) veces. Mtl Lourdes Cahuich 17
  • 18. Determinar el tiempo lógico El cuerpo de este bucle interno contiene un estatuto-if. Este estatuto puede ser ejecutado en una cantidad constante de tiempo. Mtl Lourdes Cahuich 18
  • 19. Determinar el tiempo lógico Por lo tanto, tenemos la siguiente suma que representa el número de operaciones desarrolladas usando ordenación por selección. Mtl Lourdes Cahuich 19
  • 20. Diferencias en los tiempos de los algoritmos Cada término de esta suma representa el número de pasos desarrollados por cada iteración del bucle externo. (n - 1) + (n - 2) + (n - 3) + ... + 3 + 2 + 1 Mtl Lourdes Cahuich 20
  • 21. Diferencias en los tiempos de los algoritmos La suma de esta expresión iguala a (n2 - n) / 2. Resumiremos este resultado diciendo que la ordenación por selección es un algoritmo cuadrático. Mtl Lourdes Cahuich 21
  • 22. Diferencias en los tiempos de los algoritmos Observa que cuadrático significa que al duplicar el tamaño de la entrada resultará en un incremento cuádruple en el tiempo de ejecución Mtl Lourdes Cahuich 22
  • 23. Diferencias en los tiempos de los algoritmos Una entrada diez veces más grande tomará cien veces más en procesarse. En otras palabras, los algoritmos cuadráticos no escalan muy bien las entradas grandes. Mtl Lourdes Cahuich 23
  • 24. Diferencias en los tiempos de los algoritmos Lo opuesto a los algoritmos cuadráticos son los algoritmos logarítmicos. En los algoritmos logarítmicos, el número de pasos requeridos para solucionar un problema no se incrementa de manera significativa cuando el número de entradas se incrementa dramáticamente. Mtl Lourdes Cahuich 24
  • 25. Diferencias en los tiempos de los algoritmos Un ejemplo de algoritmo logarítmico es una búsqueda binaria. En una búsqueda binaria, el número de elementos (la entrada) en donde se realiza la búsqueda se reduce a la mitad en cada pasada. Mtl Lourdes Cahuich 25
  • 26. Diferencias en los tiempos de los algoritmos Esto permite que la búsqueda binaria trabaje muy bien aún en conjuntos de datos muy grandes. Mtl Lourdes Cahuich 26
  • 27. Notación Big-Oh La notación Big-Oh ofrece una buena opción para comparar el tiempo de ejecución de los algoritmos. En un análisis asintótico, usamos la notación Big-Oh para referirnos al orden más alto, o término más dominante del análisis del tiempo de ejecución de una función Mtl Lourdes Cahuich 27
  • 28. Big Oh (orden) La propiedad más importante de la notación Big-Oh es que nos permite ignorar términos y constantes de orden bajo, como en el siguiente ejemplo. 500n3 + 10n2 + 17n + 121345 = O(n3) Mtl Lourdes Cahuich 28
  • 29. Diferencias en los tiempos de los algoritmos En el ejemplo anterior, el término de orden más alto en la ecuación del tiempo de ejecución es 500n3. Como lo hicimos con los términos de orden bajo, también podemos ignorar la constante en este término y establecer que el tiempo de ejecución es O(n3). Mtl Lourdes Cahuich 29
  • 30. Diferencias en los tiempos de los algoritmos La mayoría de los algoritmos que encontramos caen en alguna de las siguientes clases. O(1) – tiempo constante O(log(n)) – tiempo logarítmico O(n) – tiempo lineal O(n log(n)) – tiempo quot;n-log-nquot; O(n2) – tiempo cuadrático O(n3) – tiempo cúbico O(2n) – tiempo exponencial Mtl Lourdes Cahuich 30
  • 31. Diferencias en los tiempos de los algoritmos Los algoritmos que tiene un tiempo de ejecución arriba de O( n log(n)) escalan muy bien a instancias de problemas grandes. Mtl Lourdes Cahuich 31
  • 32. Diferencias en los tiempos de los algoritmos Los algoritmos cuadráticos y más aún los algoritmos cúbicos, muestran un desempeño muy degradado cuando la entrada es grande. Por último, los algoritmos exponenciales pueden ser usados solamente con entradas muy pequeñas Mtl Lourdes Cahuich 32
  • 33. Diferencias en los tiempos de los algoritmos Es importante expresar el tiempo de ejecución lógico en términos del tiempo físico, usando unidades familiares como segundos, minutos, horas, etc., para tener una idea de lo que estas caracterizaciones realmente significan. Mtl Lourdes Cahuich 33
  • 34. Primero, consideremos un algoritmo O(n log(n)) que toma 1 segundo en una entrada de tamaño 1000 tamaño de la entrada tiempo de ejecución 1000 1 segundo 2000 2.2 segundos 5000 6.2 segundos 10000 13.3 segundos 100000 2.77 minutos 106 33.3 minutos 107 6.48 horas Mtl Lourdes Cahuich 34
  • 35. En comparación, aquí se muestra un algoritmo cuadrático que también toma 1 segundo en una entrada de tamaño 1000. tamaño de la entrada tiempo de ejecución 1000 1 segundo 2000 4 segundos 5000 25 segundos 10000 1.66 minutos 100000 2.77 horas 106 11.5 días 107 3.25 años Mtl Lourdes Cahuich 35
  • 36. Imagina que un algoritmo exponencial toma un segundo en una entrada de tamaño 10. Podemos esperar aproximadamente los siguientes tiempos de ejecución para instancias más grandes Mtl Lourdes Cahuich 36
  • 37. Ejecución exponencial tamaño de la entrada tiempo de ejecución 10 1 segundo 15 32 segundos 20 17.1 minutos 25 9.1 horas 30 12.1 días 35 1.09 años 40 34.9 años 50 35700 años 100 4.02 1019 años Mtl Lourdes Cahuich 37
  • 38. Desafortunadamente, existen algunos problemas computacionales famosos que parecen requerir tiempos de ejecución exponencial Encontrar si un circuito booleano con n entradas puede producir siempre quot;verdaderoquot; como resultado es uno de ellos: existen 2n combinaciones posibles de entrada, y no se conocen atajos para simplificar el cálculo. Mtl Lourdes Cahuich 38
  • 39. ¿Cómo determinamos el tiempo de ejecución asintótico de un algoritmo?
  • 40. Determinar el tiempo en cada algoritmo cualquier secuencia de estatutos básicos, como 1)tareas de tipo incorporado ó 2) operaciones de tipo incorporado (suma, multiplicación, comparación, incremento, decremento, operaciones booleanas, etc.), toman tiempo constante (O(1)). Mtl Lourdes Cahuich 40
  • 41. Determinar el tiempo en cada algoritmo Las llamadas a la función tienen que ser contabilizadas por separado. Primero, está el costo de organizar la llamada de la función. Si sólo se usan parámetros de referencia, este costo es O(1). Mtl Lourdes Cahuich 41
  • 42. Determinar el tiempo en cada algoritmo Pero, si se invoca-por-valor, tenemos que contar el costo de copiar la entrada. El mismo comentario aplica para regresar el resultado del cálculo. Y, por supuesto, tenemos que contar la evaluación del cuerpo de la función Mtl Lourdes Cahuich 42
  • 43. Determinar el tiempo en cada algoritmo Un bucle-for toma el tiempo t(0) + t(1) + ... + t(n-1) donde t(k) es el tiempo requerido por el cuerpo del bucle cuando i iguala a k, en otras palabras, el tiempo requerido para completar la iteración k del bucle-for for (int i = 0; i < n; ++i) { cuerpo } Mtl Lourdes Cahuich 43
  • 44. Determinar el tiempo en cada algoritmo Si el cuerpo se toma el tiempo O(1), el tiempo del bucle resulta en O(n). Pero, si el cuerpo se toma el tiempo O(i), obtenemos O(n2) para el bucle completo. Por último, si el cuerpo se toma el tiempo O(i2) obtenemos O(n3) para el bucle completo Mtl Lourdes Cahuich 44
  • 45. Determinar el tiempo en cada algoritmo Otras estructuras de bucle pueden ser manejadas de la misma forma. Agrega el costo de cada ejecución individual del cuerpo del bucle, tomando en cuenta que este costo puede depender de los valores de algunos parámetros del bucle. Mtl Lourdes Cahuich 45