Pregunta: | 30726 - SOBRE TIME.H Y DIFFTIME( ) |
Autor: | Jaime Rojas Arriaga |
No es C ni Visual C, pero es muy parecido; C++.
Tengo que registrar el tiempo que tarda mi computadora en ordenar un arreglo con el método InsertionSort, mi problema es que esto posiblemente lo hace en menos de un segundo y con el método difftime( ) solo puedo ver números cerrados (1 segundo, 2 segundos, etc.). He intentado guardarlo en un float e inclusive desplegarlo con 50 puntos decimales pero aun así me sigue mostrando por ejemplo: 1.0000000000000000000000000000000... Quisiera que alguien me aconsejara como le puedo hacer con esta función o que me recomendara otra función que determine el tiempo de ordenamiento y me lo despliegue con punto decimal. De antemano muchas gracias. Jaime. |
Respuesta: | Enic Cecilla Real |
timeGetTime te dara el tiempo del sistema con precision de milisegundos, lo tienes declarado en <mmsystem.h>, deberás enlazar con winmm.lib. |
Respuesta: | chuidiang www.geocities.com/chuidiang |
El problema es que las funciones de time trabajan en segundos y hagas lo que hagas, nunca obtendras algo inferior a 1 segundo.
Tienes que usar otra función. Suele haber una que te cuenta "ticks" del reloj interno y una constante en algún lado te dice, por ejemplo, que 100 ticks son un segundo. Con esto podrías afinar hasta la centésima de segundo. En unix/linux, la función si no recuerdo mal, se llama getitimer. Te devuelve el tiempo de proceso en "ticks". Basta tomarlo antes y después de las cuentas. Se bueno. |