1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| Fonction Tri_Metzner (Tablo[1...n][1...m] : Chaine de caractères, NbE : Entier, Sens : Booléen, k : Entier, nbC : Entier) : T[1...n][1...m] : Chaine de caractères
' k permet de trier suivant la colonne voulu
' nbC nombre de colonne du tablo
Ecart : Entier
i : Entier
j : Entier
c : Entier
T : Chaine de caractères
Permut : Booléen
Début
Ecart = NbE/2 ' NbE = Taille de la table
Tant que Ecart <> 0 Faire
Pour i de 1 à NbE-Ecart Faire
j = 1
Permut = VRAI
Tant que j > 0 Et Permut = VRAI Faire
Permut = FAUX
Appeler Sens (j, k, Ecart)
Si (Tablo [j][k] > Tablo [j + Ecart][k] Et Sens = VRAI) Ou (Tablo [j][k] < Tablo [j + Ecart][k] Et Sens = FAUX) Alors
Pour c de 1 à nbC
Tc = Tablo [j][c]
Tablo [j][c] = Tablo [j + Ecart][c]
Tablo [j + Ecart][c] = Tc
c = c + 1
Permut = VRAI
j = j Ecart
Fin Pour
Fin Si
Fin Tant que
i = i + 1
Fin Pour
Ecart = Ecart / 2
Fin Tant que
Fin |
Partager