C/Visual C - Urgente por favor

 
Vista:

Urgente por favor

Publicado por Samy (1 intervención) el 10/08/2002 22:50:06
Saludos
Somos un grupo de estudiantes ignorantes que necesita de su ayuda, ¿ cuáles son las funciones disponibles para tomar el tiempo en que se ordenan N numeros ? ¿ existe alguna funcion que ordene y tome el tiempo que tardó en ordenar al mismo tiempo ? ¿ Podemos tomar el reloj del sistema como base y modificarlo después ?

Muchas Gracias, y esperamos su pronta respuesta.

San, Cindy, Abraham y Sam.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Urgente por favor

Publicado por wendell (4 intervenciones) el 10/08/2002 23:26:07
Buenas.
Existe una funcion llamada difftime() que hace exactamente lo que estais pidiendo. http://c.conclase.net/librerias/time/difftime.html --> aqui encontrareis informacion.
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Urgente por favor

Publicado por chuidiang (677 intervenciones) el 12/08/2002 10:08:40
Teneis que guardar en una variable la hora actual justo antes de empezar a ordenar. Luego guardarla en otra variable justo al acabar de ordenar. La diferencia de tiempos os dará cuánto ha tardado. La función, como bien os han dicho, es difftime().

El problema de hacerlo así es que sólo teneis precisión de segundos. Es decir, puede tardar en ordenar 1 segundo, 2 segundos, 3 segundos, etc. Si la ordenación que vais a hacer es de algo "muy gordo" quizás os baste. Si vais a ordenar 10 números en un array, siempre os dará 1 segundo o 0 segundos.

Para medir tiempo con más precisión, usad la función clock() que os da el número de ticks del microprocesador. Luego, dependiendo del ordenador que tengais, unos 100 ticks pueden ser 1 segundo, con lo cual tendriais precisión de centésimas de segundo. Echad un ojo a la ayuda de clock() y os dirá exactamente como obtener el tiempo.

Sería algo así como
float t1, t2;
t1 = (float)clock();
// ... ordenar ...
t2 = (float)clock();
printf ("El tiempo es %f\n", (t2-t1)/constante);

La constante suele estar definida en algún include del sistema. Debeis buscar el nombre exacto o su valor en la ayuda. t1 y t2 son floats para que la división salga con decimales.

Sed buenos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar