tiempo de ejecucion

Iniciado por mapers, 25 Junio 2010, 20:35 PM

0 Miembros y 2 Visitantes están viendo este tema.

mapers

holas gente quisiera que me ayuden con este problema es sobre el tiempo de ejecucion de este ejercicio :


FACTORIAL(n)
1 if n = 0
2 then return 1;
3 else return (n * Factorial(n-1));



quisiera saber como determinar el tiempo de ejecucion......... me podrian dar una pista porfavor gracias de antemano........

MIG80

#1
Puedes usar la función estandar clock(). Esta función devuelve la cantidad de marcas de reloj que pasaron desde que el programa empezo a  ejecutarse.
Ahora solo faltaria determinar cuanto dura una marca de reloj... :-\
Bueno ese valor se calcula usando la constante CLK_TCK , definida también en time.h ( Turbo C++), la cual nos da el numero de marcas de reloj por segundo ::)

Código (cpp) [Seleccionar]

#include <time.h>

//...

int main()
{
    clock_t inicio,fin;

    inicio = clock();

    /* Aqui va el codigo cuyo tiempo de ejecucion quieres medir */

    fin = clock();

    // obtenemos y escribimos el tiempo en segundos
    printf("Tiempo empleado: %f\n",(fin - inicio)/CLK_TCK);

    return 0;
}


Nork

Si te refieres al tiempo algorítmico del código es de orden de complejidad n!. Si te refieres al tiempo de una ejecución si estas en linux puedes utilizar el comando time y te pondrá lo que ha tardado.
C' Est La Vie

plof

- Complejidad: clase P.
- Orden de eficiencia: O(n).
- Tiempo de procesador: clock().

Saludos.

mapers

y como lo puedo hallar a mano  porque eso es lo que me piden .............

cbug

Si es a mano seguramente es el cálculo de complejidad. Leete un libro de algorítmica, aunque es más análisis matemático(cálculo) que otra cosa.

mapers

a ver pasame alguno de tus ejemplares porfavor necesito aprenderlo yaaaaaaa!!!

@synthesize

Puedes usar interrupciones, creo.

leogtz

Cita de: mapers en 26 Junio 2010, 06:31 AM
a ver pasame alguno de tus ejemplares porfavor necesito aprenderlo yaaaaaaa!!!


Consulta a Brassard o a Knuth, es de lo mejor que hay, aunque de lo más complejo.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com