Problème à résoudre
Soit le tableau (collection) t de longueur n contenant des valeurs entières quelconques. L’objectif de cet exercice est de tasser toutes les valeurs non nulles au début du tableau (à partir de l’indice 0) et de regrouper les valeurs nulles à la fin du tableau. L’ordre des valeurs après tassement n’est pas conservé.
Démonstration
Fonctionnement manuel
Enregistrement de la boucle
Sortie de la boucle
Démarrage
Terminaison
Exécution complète
Programme AlgoTouch
Define tasser
From
i = 0 ;
j = t.length – 1 ;
// …
Until
(i > j)
// …
Loop
if (t[i] != 0) {
i = i + 1 ;
}
else {
// t[i] == 0
tmp = t[i];
t[i] = t[j] ;
t[j] = tmp;
j = j – 1 ;
}
// …
Terminate
Write “Valeurs tassées : ” i ;
// …
End
Programme Python
t = [0, 5, 0, 4, 0, 0, 7, 2]n = len(t)
i = 0
j = len(t)-1
while (i != j):
if (t[i] != 0):
i = i + 1
else :
tmp = t[i] t[i] = t[j] t[j] = tmp
j = j – 1