Ayuda calculo de coste/tiempo de algoritmo
22-may-2013 23:16
#1
|
Tengo que calcular el tiempo que tarda en ejecutarse el algoritmo de bellman-ford sobre unas matrices, el algoritmo en si ya esta hecho y funciona, la duda es que me piden que calcule un tiempo para cada posible par de aristas (una inicial y otra final) y no se me ocurre como hacer esto. nose muy bien como explicarlo, a ver si alguien me puede ayudar aunque sea diciendo por donde investigar Código:
//calculo de tiempos
//Esta parte es la que se tiene que ejecutar para que "inicial" y "final" cada vez sean una arista
do{
t_inicial= clock ();
bellmanFord( inicial,final );
t_final= clock ();
t += ( t_final - t_inicial )/( double ) CLOCKS_PER_SEC ;
} while (loquesea)
return 0;
}
a ver si hay suerte que ya es un poco tarde |
22-may-2013 23:26
#3
| lo que pasa es que clock no es muy preciso, te puede salir cero. Busca en google que hay otra función más precisa |
22-may-2013 23:29
#4
|
lo que me falta es que en cada llamada a belmanford tengo que pasarle cada una de las aristas ej: 1-2 1-3 1-4 2-3 2-4 3-4..... ya eso tambien lo he leido en sitios pero bueno no me preocupa mucho por ahora |
22-may-2013 23:36
#5
|
Pues como tienes el bucle vas cambiando arista1 y arista2 |
22-may-2013 23:39
#6
| tan facil como meter un incremento del arista2 cada vez que terminas el belmanford, y poner un if despues para mirar si es 4 |
23-may-2013 00:04
#8
| ese error me suena a que escribes en zona de memoria no reservada, te pasas en los arrays, ect |
23-may-2013 01:39
#9
|
y tambien pasa cuando meto arboles muy grandes, pero eso me lo esperaba P.D. ya he conseguido que funcione |
23-may-2013 02:24
#10
| Si lo haces sobre linux, lo mejor es lanzarlo desde un script y allí usas el time. |