Calculer le temps d’exécution des algorithmes
Durée : 3h
Objectifs :
- Réaliser les algorithmes de tris étudiés en cours
- Coder avec des fichiers séparés
- Utiliser des Tableaux dynamiques
- Calculer le temps d’exécution des différents algorithmes (lents et rapides)
Attention :
À chaque étape de programmation, vous devez vérifier si le programme :
- Compile sans warning
- Obtient les résultats attendus
- Avant de coder, il faut écrire un algo avec un papier et un stylo !
0- Objectifs
1- Reprendre l’arborescence créée au TD précédent et rajouter les deux fichiers suivants :
- trisRapides.h
- trisRapides.c
2- Créer un nouveau main !
- Attention un programme ne peut contenir qu’une seule fonction main !!
- Il ne faut donc pas réutiliser le main créé dans le td4.
- Par contre, on réutilise :
- fonctions.h
- fonctions.c
- trisLents.h
- trisLents.c
main.c
#include <stdio.h>
#include "fonctions.h"
#include "trisLents.h"
#include "trisRapides.h"
int main(){
printf("C'est le TP7 !");
return 0;
}
3- Coder les tris suivants :
- La compilation doit être séparée
- le corps de la fonction est dans le fichier trisRapides.c
- la signature de la fonction dans fichier trisRapides.h
- l’appel de la fonction dans le fichier main.c
- Attention :
- Certains tris nécessitent la création de procédures/fonctions !
- n’oubliez pas de sauvegarder une copie du tableau créé aléatoirement
- d’appliquez le tri à la copie du tableau, afin de pouvoir le réutiliser pour les autres tris
/* Auteur : ... */
/* Date : ... */
/* Résumé : ... */
/* Entrée(s) : ... */
/* Sortie(s) : ... */
void triRapide(int* monTab, int pas, int taille);
/* Auteur : ... */
/* Date : ... */
/* Résumé : ... */
/* Entrée(s) : ... */
/* Sortie(s) : ... */
void triFusion(int* monTab, int pas, int taille);
4- Calculer le temps d’exécution pour chacun des tris.
Pour cela, vous pouvez vous aider de CLOCK.
clock_t t1,t2;
float temps_total;
t1=clock();
maSuperFonction(parametre1,parametre2);
t2=clock();
temps_total= (float)(t2-t1)/CLOCKS_PER_SEC;
printf("ma Super Fonction a mis %f de secondes à s'executer \n",temps_total);
5- (Bonus)
- Créer un makefile permettant de compiler le tout
- Ajouter au programme la possibilité de rajouter un argument à l’éxécution avec la taille du Tableau
- Créer un menu interactif permettant à l’utilisateur de choisir un tri en particuliers