Travaux Pratiques du L1 année 2000-2001

Tri rapide et tri à bulles










Durée : 3 heures.

    L'objectif de cette feuille de travaux pratiques est de comparer les  performances d'un tri rapide avec un tri à bulles.  Pour les mesures de temps de calculs, il est recommandé d'utiliser la librairie time.h. Pour les tirages voir les fonctions rand et  random. Dans la dernière partie, la commande top permet de voir  bouillir la marmite.

Dérangements.

  1. Soit T une table de n  entiers. Un couple d'indices (i,j) est un dérangement de la table T si i < j et T[j] < T[i] et  on note der(T) le nombre de dérangements de T.  Clairement le tableau T est trié  si et seulement si d(T) est nul .
  2. Quelle est la valeur maximale de d(T) ?
  3. En déduire une définition du taux de dérangement de T.
  4. Ecrire une fonction  taux(T,n) pour compter le  taux de dérangements de T.
  5. Ecrire une fonction  table(n,t) pour construire une table aléatoire dont le taux de dérangement est t.
Algorithmes de tris
  1. Vérifier le bon fonctionnement de ces deux fonctions pour n = 100000.
  2. Implanter une version  TriBulles(T,n)  du tri à bulles
  3. Implanter une version  TriRapide(T,n) du tri rapide.
  4. Vérifier le bon fonctionnement de ces deux procédures.
Mesures de temps de calcul.
  1. Impanter l'algorithme décrit  ci-dessous pour comparer les deux méthodes de tris.
  2. Insérer des temps de calcul et faire une représentatiion graphique.
        n = 10000;
        i = 0;
        TANTQUE ( i <= 10 )
             tab = table( n, i/10);
             aux = copier( tab, n);
             TriRapide( tab, n)
             TriBulle(aux, n)
             inc(i);