| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
Masakre
Registrado: 06 Jun 2012 Mensajes: 245
| Publicado: 07/06/2014 9:04 pm | | | Título: Consulta sobre eficiencia de los algoritmos |
| Si resuelvo 1 enunciado de 2 formas distintas y quiero saber cuál de los algoritmos es el más eficiente, ¿cómo podría saberlo?
Si comparo el tiempo de ejecución de ambos en un mismo ordenador podría determinarlo, ¿verdad?
En Code::Blocks aparece el tiempo de ejecución por defecto, pero incluye el tiempo en que tardo en ingresar los datos, y no quiero modificar los datos desde el código fuente.
En todo caso tendría que medir de alguna forma el tiempo, luego de que se ingresaron los datos y luego que se encontró la respuesta.
¿Estaría bien usar lo siguiente? Tal vez exista alguna herramienta para determinar ello.
| Código: | clock_t t; // Antes de los siguientes. t = clock(); // Luego del ingreso de datos. t = clock() - t; // Luego de encontrar la respuesta. |
|
| | Volver arriba | |  | _Leo_
Registrado: 20 Oct 2005 Mensajes: 399 Ubicación: Buenos Aires, Argentina
| Publicado: 08/06/2014 7:19 am | | | Título: |
| La idea está bien, pero la función clock() no es la adecuada para lo que estás haciendo. En el manual de clock() dice que la función devuelve el tiempo de procesador usado por el programa. Ese no es el tiempo real transcurrido ya que el procesador es compartido con otros procesos, y ese tiempo no estaría contabilizado ahí.
Te recomiendo que uses clock_gettime() que retorna el tiempo real con precisión de nanosegundos. En este código para contar caracteres en UTF-8 usé esa función para medir el tiempo de ejecución de una porción del programa. Fijate de la línea 24 a 28 y en la 52. _________________ _Leo_ Daphne - administrador de tareas Cine, tecnología, sociedad |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |