Questions extraites du site genumsi.inria.fr qui propose des QCM d'entraînement.

Invariant d'un algorithme de tri par insertion :


On considère un algorithme de tri par insertion, dans lequel la fonction:

echanger(tab[i], tab[j])

effectue l'échange les ième et jième valeurs du tableau tab.





nom: tri_insertion

paramètre: tab, tableau de n entiers, n >= 2

Traitement:
pour i allant de 2 à n:
j = i
tant que j > 1 et tab[j-1] > tab[j]:
echanger(tab[j-1], tab[j])
j = j-1
renvoyer tab


Question: quel est l'invariant de boucle qui correspond précisément à cet algorithme ?

Cliquer pour afficher la solution

La réponse est : C