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.
-
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 .
-
Quelle est la valeur maximale de d(T) ?
-
En déduire une définition du taux de dérangement de
T.
-
Ecrire une fonction taux(T,n) pour compter le taux
de dérangements de T.
-
Ecrire une fonction table(n,t) pour construire une table
aléatoire dont le taux de dérangement est t.
Algorithmes de tris
-
Vérifier le bon fonctionnement de ces deux fonctions pour n
= 100000.
-
Implanter une version TriBulles(T,n) du tri à bulles
-
Implanter une version TriRapide(T,n) du tri rapide.
-
Vérifier le bon fonctionnement de ces deux procédures.
Mesures de temps de calcul.
-
Impanter l'algorithme décrit ci-dessous pour comparer les
deux méthodes de tris.
-
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);