Fonction en C

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

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    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,
    1. merci mais il m'affiche toujours 0.000000
    2. Modérateur
      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);
      }
    3. merci infinemant!! :)))
  2. Contributeur
    Comment as-tu affiché ta variable ?
    Cdlt,
    1. printf(" la duree : %f\n",duree)
      j'ai essaye aussi %lf
    2. Contributeur
      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,
    3. merci...