Fonction en C

Résolu
chahbane -  
 chahbane -
Bonjour,
SVP j'ai besoin d'une fonction qui retourne la duree d'execution d'un tri par exemple en C!
merci d'avance!


A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,

"Mesurer temps d'exécution C" sur google vous emmène sur la page : http://www.jonathan-petitcolas.com/calculer-le-temps-dexcution-dune-fonction-en/
Le principe est simple : tu déclares deux variables de type clock_t
Tu encadres ta fonction de tri entre deux fonctions clock().
La différence entre les deux variables divisée sur le nombre de coups d'horloge par seconde te donnera le nombre de secondes.
<time.h>

clock_t deb, fin;
double duree;
deb=clock();
tri();
fin=clock();
duree=(fin-deb)/(double)CLOCKS_PER_SEC;

Cdlt,
3
chahbane
 
merci mais il m'affiche toujours 0.000000
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Peut-être que ta fonction met vraiment 0 seconde à s'exécuter ^^

Voici une fonction tri qui s'exécute en 10 secondes (mais qui ne tri rien :p)

void tri()
{
	clock_t t=clock()+10*CLOCKS_PER_SEC;
	while (clock()<t);
}
0
chahbane
 
merci infinemant!! :)))
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Comment as-tu affiché ta variable ?
Cdlt,
1
chahbane
 
printf(" la duree : %f\n",duree)
j'ai essaye aussi %lf
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Non c'est bien %f (et non %lf).
Peut-être que le tri est très rapide, surtout si ton tableau ne contient pas énormément d'éléments. Tu peux t'en assurer en affichant juste fin-debut; (sans diviser par le nombre de clocks par seconde).
Cdlt,
0
chahbane
 
merci...
0