TP ASD Série 1 Exercice 2

En ce qui concerne le deuxième exercice, mis-à-part le codage des fonctions de tri, la partie servant à comparer les performances est plutôt simple. Voyez ci-dessous par vous même:

int comparer_performances() {
    int Tab1[1000], Tab2[1000], Tab3[1000], Tab4[1000], Tab5[1000];
    int longueur = 1000;

    int i, temp;
    for (i = 0; i < longueur; ++i) {
        //Il faut appeler la fonction rand() une seule fois par tour de boucle, il faut sauvegarder la valeur
        // qu'elle renvoie et l'assigner à la même case "i" dans chaque tableau.
        // Si vous l'appelez pour chaque tableau, vous obtiendrez 5 tableaux différents et vous n'aurez pas le
        // même jeu de valeurs pour chacune des fonctions, ce qui fait que votre comparaison ne sera pas
        // équitable, il est même possible qu'elle soit erronée.
        temp = rand();
        Tab1[i] = temp;
        Tab2[i] = temp;
        Tab3[i] = temp;
        Tab4[i] = temp;
        Tab5[i] = temp;
    }

    clock_t debut, fin, duree; // Il est préférable d'utiliser le type "clock_t"
    // mais si vous utilisez le type "int" ou "long", ça va également fonctionner.

    /*
     * Tri selection
     */
    debut = clock();
    tri_selection();
    fin = clock();

    duree = fin - debut;
    printf("La fonction tri_selection a pris %d ticks d'horloge pour s'exécuter.", duree);


    /*
     * Tri insertion
     */
    debut = clock();
    tri_insertion();
    fin = clock();

    duree = fin - debut;
    printf("La fonction tri_insertion a pris %d ticks d'horloge pour s'exécuter.", duree);


    /*
     * Tri rapide
     */
    debut = clock();
    tri_rapide();
    fin = clock();

    duree = fin - debut;
    printf("La fonction tri_rapide a pris %d ticks d'horloge pour s'exécuter.", duree);


    /*
     * Et cetera (etc...)
     */

    return 0;
}

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *