Vous êtes sur la page 1sur 2

Universite de Bordeaux - Coll`ege S&T

LST Mention MI Semestre 2

2013-2014

J1MI2013: Algorithmes et Programmes: feuille 10


Tri rapide

Travaux dirig
es
Le tableau `
a trier est reorganise en deux sous-tableaux tels que tous les elements du premier
sous-tableau soient inferieurs `
a ceux du second. On reapplique ce principe `a chacun des soustableaux jusqu`
a ce quils soient reduits `a un seul element.
En pratique, on choisit un pivot (par exemple, le premier element) puis on reorganise le tableau.
Exemple : soit t = [7, 3, 5, 1, 8, 4 ] le tableau `a trier :
on consid`ere [7, 3, 5, 1, 8, 4 ]. Le pivot est 7.

on reorganise et on obtient [4, 3, 5, 1, 7, 8 ]


on consid`ere [4, 3, 5, 1]. Le pivot est 4.
on reorganise et on obtient[1, 3, 4 , 5]
on consid`ere [1, 3] . Le pivot est 1.
on reorganise et on obtient [1, 3]
le singleton [3] est trie
[1,3] est trie
le singleton [5] est trie.
[1, 3, 4, 5] est trie
Le singleton [8] est trie.
Le tableau est trie [1, 3, 4, 5, 7, 8]

Pour reorganiser le tableau [7, 3, 5, 1, 8, 4] en [4, 3, 5, 1, 7, 8], on utilisera letape intermediaire


[7, 3, 5, 1, 4, 8].
De meme, pour reorganiser le tableau [4, 3, 5, 1, 7, 8] en [1, 3, 4, 5, 7, 8], on utilisera letape
intermediaire [4, 3, 1, 5, 7, 8].
Analyser ces etapes intermediaires afin den deduire un algorithme de reorganisation.


Exercice 1.
Ecrire
une fonction reorganiser(t,debut,fin) qui utilise comme pivot lelement dindice debut et reorganise le sous-tableau situe entre les indices debut et fin-1 de
mani`ere que lon obtienne :
elements < = pivot

pivot

elements > pivot

Cette fonction retourne lindice de la nouvelle position du pivot.

Exercice 2.
Ecrire
une fonction recursive triRapideRec(t,debut,fin) qui trie recursivement le tableau t entre les indices debut et fin-1.
Exercice 3.

Ecrire
une fonction triRapide(t) qui trie le tableau.

Travaux pratiques
Exercice 1.
en TD.1

Ecrire
et tester les fonctions implementant lalgorithme de tri rapide etudiees

Exercice 2. La fonction testAleatoire(tri,n) retourne le temps dexecution de la fonction


tri appliquee `
a un tableau de n entiers deux `a deux distincts aleatoirement desordonne.
Tester les deux tris recursifs (tri fusion et tri rapide) pour differentes valeurs du param`etre n.
Comparer les temps de calcul des deux tris.

On pourra executer le script demoTri et observer sur les exemples le deroulement des tris recursifs etudies en

TD

Vous aimerez peut-être aussi