Adloun

algorithmique (école d'ingénieur) · Chapitre 14 · Exercice de TD

Pire cas du tri rapide

Les tris · niveau 2

Énoncé

On remplace le pivot aléatoire du tri rapide par la dernière case de la zone. Mesurer le temps de calcul sur des tableaux déjà triés de tailles , et . Que constate-t-on ? Que se passe-t-il pour ? Expliquer.

Corrigé


14.5 trie n=10000 : 8,3 ms
14.5 trie n=20000 : 33,0 ms
14.5 trie n=40000 : 131,4 ms
14.5 n=100000 : StackOverflowError

Quand double, le temps est multiplié par : le temps de calcul est quadratique. Sur un tableau trié, le pivot (la dernière case) est le maximum de la zone : la segmentation de fait comparaisons et laisse une zone de cases à gauche et une zone vide à droite. Le temps vérifie , soit (exercice 13.3).


nom : T
cases : 8
colorier : 7
pointeurs : g=0 d=8
zone : 0..6 d - g - 1 cases
legende : tableau trié : le pivot T[d-1] est le maximum, la zone droite est vide

Pour , la profondeur de récursivité atteint : la pile d'appels de Java déborde (StackOverflowError). Le pivot aléatoire rend ce comportement extrêmement improbable ; on peut aussi n'appeler récursivement que la plus petite des deux zones et traiter l'autre par une boucle, ce qui borne la profondeur par .

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →