suivant: Exercice 4 - Tri
monter: Un autre exemple
précédent: Exercice 2 - Plus
Table des matières
Nous allons écrire et démontrer la validité de l'algorithme du tri par
insertion. Nous rappelons que
est trié si
. Etant donné le
programme suivant :
Prouver que si on passe en paramètre à
un tableau
dont les
premiers éléments sont triés, alors à la fin de son exécution,
les
premiers éléments dont triés. Etant donné le programme suivant :
Démontrer la terminaison et la validité de
.
Voici le corrigé de la première question : L'algorithme se termine
bien car les valeurs prises par
forment une séquence de nombres
entiers strictement décroissante. Si l'on ne sort pas de la boucle
avec
, on aura forcément
après la dernière
itération. Prenons comme invariant de boucle la conjonction des
conditions suivantes :
- La tranche
est triée
- La tranche
est triée
-
Prouvons cette propriété par récurrence :
- A la première itération, on a
. Comme
correspond à la tranche
donc par
hypothèse cette tranche est triée. La tranche
est réduite au seul élément
, elle est donc
nécessairement triée. Comme
, la troisième
condition est trivialement vérifiée.
- Supposons qu'au début d'une itération arbitraire, les trois
propriétés soient vérifiées. Soient
la valeur de
et
le tableau
à la fin de cette
itération. Montrons alors que
- La tranche
est triée
- La tranche
est triée
-
D'une part, on a
et
. Par ailleurs,
,
et
. Tous les autres éléments de
et de
coïncident. Montrons les trois propriétés :
- Par hypothèse de récurrence, la tranche
est triée, donc la tranche
que l'on
obtient en ne comptabilisant pas le dernier élément est aussi
triée. Comme les éléments de
et
d'indices
différents de
et
sont les mêmes et que
, alors
est triée.
- Par hypothèse de réccurrence
est triée,
en ne considérant pas le premier élément, on a
, comme les éléments de cette tranche
coïncident avec
, alors
est triée. Par
ailleurs, on a
et
, comme
, alors
. Si
, alors par hypothèse de récurrence, on a
, donc
. Dans ce cas, on a
avec
triée. Donc
est triée. Si
, alors la tranche
est réduite aux deux éléments
, elle est donc
triée.
- Quelle que soit la valeur de
, on a nécessairement
, il faut donc montrer que
. Or
et
. Par hypothèse de récurrence,
est triée, donc on a
, d'où
.
Après la denière itération, si
, alors la première tranche ne
contient aucun élément et la deuxième condition de l'invariant de
boucle permet de conclure que toute la tranche
est
triée. Si par contre, on sort de la boucle parce que
, alors comme, d'après l'invariant de boucle,
et
sont triées, alors
est triée.
suivant: Exercice 4 - Tri
monter: Un autre exemple
précédent: Exercice 2 - Plus
Table des matières
klaus
2010-08-05