SlideShare una empresa de Scribd logo
1 de 15
Eficiencia en uso de recursos y 
memoria 
Programación avanzada C++
Repaso 
• Recordemos qué es un algoritmo
Un algoritmo es: 
• Una secuencia de pasos para resolver un 
problema, sus características son: 
– Independiente: Del lenguaje de programación y de 
la máquina. 
– Definido: De pasos claros y concretos. 
– Finito: En el número de pasos que usará. 
– Preciso: Cada paso arroja un cálculo correcto. 
– Recibe datos: Debe poseer datos de entrada.
Recursos necesarios para un programa 
• Tiempo de procesador 
• Memoria RAM 
• Uso de recursos de procesador 
• Los recursos no son infinitos, por eso se debe 
analizar la eficiencia y desempeño de cada 
algoritmo, para encontrar el equilibrio adecuado 
entre realizar la tarea del programa usando la 
menor cantidad de recursos posibles.
Tiempo de ejecución 
• Tiempo de Ejecución 
– El tiempo de Ejecución de un programa se mide 
en función de N, lo que designaremos como T(N). 
– Esta función se puede calcular físicamente 
ejecutando el programa acompañados de un reloj, 
o calcularse directamente sobre el código, 
contando las instrucciones a ser ejecutadas y 
multiplicando por el tiempo requerido por cada 
instrucción.
Tiempo de ejecución (cont.) 
• Así, un trozo sencillo de código como: 
S1; 
for(int x = 0; x < N; x++) 
S2; 
Va a tardar: T(N) = t1 + t2 * N 
• Donde t1 es el tiempo que lleva ejecutar la 
serie S1 de sentencias, y t2 es el que lleva la 
serie S2.
Tiempo de ejecución (cont.) 
• Habitualmente todos los algoritmos contienen 
alguna sentencia condicional o selectiva, 
haciendo que las sentencias ejecutadas 
dependan de la condición lógica, esto hace 
que aparezca más de un valor para T(N), es 
por ello que debemos hablar de un rango de 
valores: 
Tmin(N) ≤ T(N) ≤ Tmax(N)
Ejemplo práctico para calcular tiempo 
de ejecución. 
#include <iostream> 
#include <time.h> //librería para calcular tiempo de ejecución 
#include <math.h> //librería para obtener números aleatorios 
using namespace std; 
void tiempoProc1(void);//procedimiento que contiene instrucciones para calcular 
// tiempo que tarda cierto algoritmo 
int main(){ 
tiempoProc1(); //procedimiento para calcular el tiempo que tarda cierto 
//algoritmo 
system("pause"); 
return 0; 
}//fin main
void tiempoProc1(void){ 
int inicio, fin, t; 
float tiempoSeg; 
inicio = clock();//guarda tiempo inicial 
/*Código a calcular el tiempo---lo podemos cambiar para ver 
cómo se comportan diferentes algoritmos*/ 
for (int i = 0; i<1000; i++) 
cout <<i<<"n"; 
/*Se puede poner el código al cuál queremos calcular el 
tiempo*/ 
fin = clock();//guarda tiempo final 
t = fin - inicio;//calcula tiempo transcurrido 
tiempoSeg=((float)t) / CLOCKS_PER_SEC;//investiga qué 
// significa esta línea 
cout << "El tiempo transcurrido fue: " << tiempoSeg << "n"; 
}//fin tiempoProc1
Probemos este código con varios sub-algoritmos
Usando el ejemplo anterior, 
investiga y responde lo siguiente
¿Cuánto tarda en ejecutarse este ciclo 
for? 
for(int i=0; i<1000;i++) 
cout <<i<<"n";
¿Cuánto tarda este procedimiento de 
arreglo estático? 
void arregloEstatico(void){ 
int aE[10]; //aquí se declara el arreglo estático cuyo tamaño fijo 
//está definido por la constante TAM 
srand(5);//"semilla" para generar números aleatorios 
cout << "nARREGLO ESTATICOn"; 
//ciclo para llenar el arreglo estático 
for (int i = 0; i < 10; i++){ 
cout << "nElemento " << i << " del arreglo: "; 
aE[i] = rand(); 
cout << aE[i]; 
} cout << "n";//imprime en pantalla una línea en blanco 
//ciclo para mostrar arreglo estático 
for (int i = 0; i < 10; i++) 
cout << aE[i] << " "; 
cout << "n";//imprime en pantalla una línea en blanco 
}//fin procedimiento arregloEstatico
¿Cuánto tarda este procedimiento de 
arreglo dinámico? 
void arregloDinamico(void){ 
int tamDin = 0; //variable para que el usuario indique el tamaño del arreglo que quiere 
cout << "nARREGLO DINAMICOn"; 
cout << "Calcula el tamaño del arreglo de enteros: ";//indica a usuario tamaño deseado 
srand(5);//"semilla" para generar números aleatorios 
tamDin = rand(); //se guarda el tamaño en variable tamDin 
cout << " " << tamDin << "n";//se muestra el tamaño aleatorio elegido 
int *pArregloDin; //apuntador para guardar dirección de inicio del arreglo dinámico 
pArregloDin = new int[tamDin]; //se aparta memoria dinámica para el arreglo pArregloDin 
//ciclo para llenar los elementos del arreglo dinámico 
for (int i = 0; i < tamDin; i++){ 
cout << "nElemento " << i << " ";//pide al usuario ingrese cada uno de 
//los elementos del arreglo 
pArregloDin[i] = rand(); 
}//fin for 
cout << "n";//imprime en pantalla una línea en blanco 
//ciclo para mostrar arreglo dinámico 
for (int i = 0; i < tamDin; i++) 
cout << pArregloDin[i] << " "; //fin for 
cout << "n";//imprime en pantalla una línea en blanco 
delete pArregloDin; //librea la memoria dinámica reservada para el arreglo 
}//fin procedimiento arreglo dinámico
Fin del primer elemento de 
eficiencia de uso

Más contenido relacionado

La actualidad más candente

Asignación de Polos y Predictor de Smith
Asignación de Polos y Predictor de SmithAsignación de Polos y Predictor de Smith
Asignación de Polos y Predictor de Smith
Paolo Castillo
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamiento
Orlando Torres
 
Slides sesion8 matlab - IF y bucles
Slides sesion8 matlab - IF y buclesSlides sesion8 matlab - IF y bucles
Slides sesion8 matlab - IF y bucles
matlab_usc
 
Ejercicios de programación en C (Estructuras condicionales-Selectivas)
Ejercicios de programación en C (Estructuras condicionales-Selectivas)Ejercicios de programación en C (Estructuras condicionales-Selectivas)
Ejercicios de programación en C (Estructuras condicionales-Selectivas)
Maynor Mendoza
 

La actualidad más candente (20)

Asignación de Polos y Predictor de Smith
Asignación de Polos y Predictor de SmithAsignación de Polos y Predictor de Smith
Asignación de Polos y Predictor de Smith
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamiento
 
Python Pilas y Colas
Python Pilas y ColasPython Pilas y Colas
Python Pilas y Colas
 
Estructuras repetitivas(while, for, repeat)
Estructuras repetitivas(while, for, repeat)Estructuras repetitivas(while, for, repeat)
Estructuras repetitivas(while, for, repeat)
 
Ciclo for
Ciclo forCiclo for
Ciclo for
 
Slides sesion8 matlab - IF y bucles
Slides sesion8 matlab - IF y buclesSlides sesion8 matlab - IF y bucles
Slides sesion8 matlab - IF y bucles
 
simulacion numeros pseudoaleatorios
simulacion numeros pseudoaleatoriossimulacion numeros pseudoaleatorios
simulacion numeros pseudoaleatorios
 
Tema 2 Diccionarios. Tablas Hash.
Tema 2 Diccionarios. Tablas Hash.Tema 2 Diccionarios. Tablas Hash.
Tema 2 Diccionarios. Tablas Hash.
 
Ejercicios de programación en C (Estructuras condicionales-Selectivas)
Ejercicios de programación en C (Estructuras condicionales-Selectivas)Ejercicios de programación en C (Estructuras condicionales-Selectivas)
Ejercicios de programación en C (Estructuras condicionales-Selectivas)
 
Ordenamiento burbuja
Ordenamiento burbujaOrdenamiento burbuja
Ordenamiento burbuja
 
Método de ordenación por inserción directa
Método de ordenación por inserción directaMétodo de ordenación por inserción directa
Método de ordenación por inserción directa
 
Funciones del stella
Funciones del  stellaFunciones del  stella
Funciones del stella
 
Ejercicios resueltos de programacion
Ejercicios resueltos de programacionEjercicios resueltos de programacion
Ejercicios resueltos de programacion
 
Programacion Orientada a Objetos - Undiad 4 polimorfismo
Programacion Orientada a Objetos - Undiad 4 polimorfismoProgramacion Orientada a Objetos - Undiad 4 polimorfismo
Programacion Orientada a Objetos - Undiad 4 polimorfismo
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
BUCKET SORT
BUCKET SORTBUCKET SORT
BUCKET SORT
 
Modelo e
Modelo eModelo e
Modelo e
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria Estatica
 
06 - Arrays y matrices en lenguaje C
06 - Arrays y matrices en lenguaje C06 - Arrays y matrices en lenguaje C
06 - Arrays y matrices en lenguaje C
 
S9. transformada inversa-de_laplace
S9. transformada inversa-de_laplaceS9. transformada inversa-de_laplace
S9. transformada inversa-de_laplace
 

Similar a Eficiencia en uso en algoritmos- tiempo de ejecución

Algoritmos - Funciones C++
Algoritmos - Funciones C++ Algoritmos - Funciones C++
Algoritmos - Funciones C++
Ronal Palomino
 
Material de Clases TP 03 - Programación Computacional
Material de Clases TP 03 - Programación ComputacionalMaterial de Clases TP 03 - Programación Computacional
Material de Clases TP 03 - Programación Computacional
mnllorente
 

Similar a Eficiencia en uso en algoritmos- tiempo de ejecución (20)

Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempo
 
6.funciones y recursividad en c++
6.funciones y recursividad en c++6.funciones y recursividad en c++
6.funciones y recursividad en c++
 
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
 
Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa Ramirez
 
Algoritmos - Funciones C++
Algoritmos - Funciones C++ Algoritmos - Funciones C++
Algoritmos - Funciones C++
 
Manual.es
Manual.esManual.es
Manual.es
 
Fundamentos de Programación - Unidad III Control de Flujo
Fundamentos de Programación - Unidad III Control de FlujoFundamentos de Programación - Unidad III Control de Flujo
Fundamentos de Programación - Unidad III Control de Flujo
 
ANALISIS DE LOS ALGORITMOS
ANALISIS DE LOS ALGORITMOSANALISIS DE LOS ALGORITMOS
ANALISIS DE LOS ALGORITMOS
 
Foro de integracion
Foro de integracionForo de integracion
Foro de integracion
 
Foro de integracion
Foro de integracionForo de integracion
Foro de integracion
 
Principios de Programacion
Principios de ProgramacionPrincipios de Programacion
Principios de Programacion
 
5.instrucciones de control en c++ parte 2
5.instrucciones de control en c++  parte 25.instrucciones de control en c++  parte 2
5.instrucciones de control en c++ parte 2
 
Notación Asintótica
Notación AsintóticaNotación Asintótica
Notación Asintótica
 
Foro de integracion
Foro de integracionForo de integracion
Foro de integracion
 
Algoritmos
Algoritmos Algoritmos
Algoritmos
 
Material de Clases TP 03 - Programación Computacional
Material de Clases TP 03 - Programación ComputacionalMaterial de Clases TP 03 - Programación Computacional
Material de Clases TP 03 - Programación Computacional
 
EL ALGORITMO
EL ALGORITMOEL ALGORITMO
EL ALGORITMO
 
Resumen
ResumenResumen
Resumen
 
Resumen
ResumenResumen
Resumen
 

Más de 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
 
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++
 
Objetos y arreglos en C#
Objetos y arreglos en C#Objetos y arreglos en C#
Objetos y arreglos en C#
 

Último

ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
zulyvero07
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
JonathanCovena1
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Francisco158360
 

Último (20)

Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCV
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
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
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
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
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
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
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 

Eficiencia en uso en algoritmos- tiempo de ejecución

  • 1. Eficiencia en uso de recursos y memoria Programación avanzada C++
  • 2. Repaso • Recordemos qué es un algoritmo
  • 3. Un algoritmo es: • Una secuencia de pasos para resolver un problema, sus características son: – Independiente: Del lenguaje de programación y de la máquina. – Definido: De pasos claros y concretos. – Finito: En el número de pasos que usará. – Preciso: Cada paso arroja un cálculo correcto. – Recibe datos: Debe poseer datos de entrada.
  • 4. Recursos necesarios para un programa • Tiempo de procesador • Memoria RAM • Uso de recursos de procesador • Los recursos no son infinitos, por eso se debe analizar la eficiencia y desempeño de cada algoritmo, para encontrar el equilibrio adecuado entre realizar la tarea del programa usando la menor cantidad de recursos posibles.
  • 5. Tiempo de ejecución • Tiempo de Ejecución – El tiempo de Ejecución de un programa se mide en función de N, lo que designaremos como T(N). – Esta función se puede calcular físicamente ejecutando el programa acompañados de un reloj, o calcularse directamente sobre el código, contando las instrucciones a ser ejecutadas y multiplicando por el tiempo requerido por cada instrucción.
  • 6. Tiempo de ejecución (cont.) • Así, un trozo sencillo de código como: S1; for(int x = 0; x < N; x++) S2; Va a tardar: T(N) = t1 + t2 * N • Donde t1 es el tiempo que lleva ejecutar la serie S1 de sentencias, y t2 es el que lleva la serie S2.
  • 7. Tiempo de ejecución (cont.) • Habitualmente todos los algoritmos contienen alguna sentencia condicional o selectiva, haciendo que las sentencias ejecutadas dependan de la condición lógica, esto hace que aparezca más de un valor para T(N), es por ello que debemos hablar de un rango de valores: Tmin(N) ≤ T(N) ≤ Tmax(N)
  • 8. Ejemplo práctico para calcular tiempo de ejecución. #include <iostream> #include <time.h> //librería para calcular tiempo de ejecución #include <math.h> //librería para obtener números aleatorios using namespace std; void tiempoProc1(void);//procedimiento que contiene instrucciones para calcular // tiempo que tarda cierto algoritmo int main(){ tiempoProc1(); //procedimiento para calcular el tiempo que tarda cierto //algoritmo system("pause"); return 0; }//fin main
  • 9. void tiempoProc1(void){ int inicio, fin, t; float tiempoSeg; inicio = clock();//guarda tiempo inicial /*Código a calcular el tiempo---lo podemos cambiar para ver cómo se comportan diferentes algoritmos*/ for (int i = 0; i<1000; i++) cout <<i<<"n"; /*Se puede poner el código al cuál queremos calcular el tiempo*/ fin = clock();//guarda tiempo final t = fin - inicio;//calcula tiempo transcurrido tiempoSeg=((float)t) / CLOCKS_PER_SEC;//investiga qué // significa esta línea cout << "El tiempo transcurrido fue: " << tiempoSeg << "n"; }//fin tiempoProc1
  • 10. Probemos este código con varios sub-algoritmos
  • 11. Usando el ejemplo anterior, investiga y responde lo siguiente
  • 12. ¿Cuánto tarda en ejecutarse este ciclo for? for(int i=0; i<1000;i++) cout <<i<<"n";
  • 13. ¿Cuánto tarda este procedimiento de arreglo estático? void arregloEstatico(void){ int aE[10]; //aquí se declara el arreglo estático cuyo tamaño fijo //está definido por la constante TAM srand(5);//"semilla" para generar números aleatorios cout << "nARREGLO ESTATICOn"; //ciclo para llenar el arreglo estático for (int i = 0; i < 10; i++){ cout << "nElemento " << i << " del arreglo: "; aE[i] = rand(); cout << aE[i]; } cout << "n";//imprime en pantalla una línea en blanco //ciclo para mostrar arreglo estático for (int i = 0; i < 10; i++) cout << aE[i] << " "; cout << "n";//imprime en pantalla una línea en blanco }//fin procedimiento arregloEstatico
  • 14. ¿Cuánto tarda este procedimiento de arreglo dinámico? void arregloDinamico(void){ int tamDin = 0; //variable para que el usuario indique el tamaño del arreglo que quiere cout << "nARREGLO DINAMICOn"; cout << "Calcula el tamaño del arreglo de enteros: ";//indica a usuario tamaño deseado srand(5);//"semilla" para generar números aleatorios tamDin = rand(); //se guarda el tamaño en variable tamDin cout << " " << tamDin << "n";//se muestra el tamaño aleatorio elegido int *pArregloDin; //apuntador para guardar dirección de inicio del arreglo dinámico pArregloDin = new int[tamDin]; //se aparta memoria dinámica para el arreglo pArregloDin //ciclo para llenar los elementos del arreglo dinámico for (int i = 0; i < tamDin; i++){ cout << "nElemento " << i << " ";//pide al usuario ingrese cada uno de //los elementos del arreglo pArregloDin[i] = rand(); }//fin for cout << "n";//imprime en pantalla una línea en blanco //ciclo para mostrar arreglo dinámico for (int i = 0; i < tamDin; i++) cout << pArregloDin[i] << " "; //fin for cout << "n";//imprime en pantalla una línea en blanco delete pArregloDin; //librea la memoria dinámica reservada para el arreglo }//fin procedimiento arreglo dinámico
  • 15. Fin del primer elemento de eficiencia de uso

Notas del editor

  1. Leer más: http://www.monografias.com/trabajos27/complejidad-algoritmica/complejidad-algoritmica.shtml#ixzz3G8CE0vTm
  2. Leer más: http://www.monografias.com/trabajos27/complejidad-algoritmica/complejidad-algoritmica.shtml#ixzz3G8Dzewfu