Adloun

Quickselect : la constante, et le pire cas

Exercice · niveau 2 · informatique (MP2I/MPI), chapitre 25 — Algorithmes probabilistes, approximation, séparation et évaluation

Énoncé

Corrigé

1. Mesures sur exécutions, tableaux de valeurs distinctes mélangées :

comparaisonsrapporté à (un tri)

Le rapport au reste constant quand est multiplié par cent : la complexité est bien en espérance, et non . La constante mesurée, environ , est celle que prévoit l'analyse : comparaisons par élément pour la médiane.

L'écart avec le tri se creuse : à , on fait cinq fois moins de comparaisons. Trier pour lire un seul élément est exactement le genre de travail inutile que le chapitre chap:diviser apprend à repérer.

2. Le pire cas s'obtient en forçant le pivot à être l'élément minimal à chaque appel : chaque étape n'élimine qu'un élément, et l'on parcourt Pour , la mesure donne comparaisons, à comparer à

L'accord est exact — ce n'est pas une estimation, c'est le compte.

3. Parce que le pire cas ne dépend pas de l'entrée mais des tirages. Un adversaire qui connaît le code peut construire l'entrée qu'il veut ; il ne peut pas choisir les pivots, qui sont tirés à l'exécution. La suite de pivots la plus défavorable — le minimum du sous-tableau à chaque étape — a une probabilité

soit environ pour .

C'est le vrai apport du hasard ici, et il vaut d'être formulé nettement. Un tri rapide à pivot fixe — le premier élément — a un pire cas en atteint par une entrée déjà triée, c'est-à-dire l'entrée la plus banale qui soit. En tirant le pivot au hasard, on ne supprime pas le pire cas : on le rend inatteignable par construction. C'est la dernière phrase du chapitre : le hasard protège du pire cas parce que l'adversaire ne connaît pas les tirages.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.