Pascal - Tri par fusion-récursion
Voici une procédure récursive qui peut trier un tableau de n entiers en utilisant la méthode du tri par fusion
Procédure Sort_Merge (Var t: TAB; g, d: entier);Var
m, i, j, k: entier;
poignarder;
Commencer
Si d> g alors
Commencer
m: = (g + d) Div 2;
Sort_Merge (t, g, m);
Sort_Merge (t, m + 1, d);
Pour i: = m DownTo g Do
s [i]: = t [i];
Pour j: = m + 1 To d Do
s [d + m + 1 - j]: = t [j];
i: = g; j: = d;
Pour k: = g To d Do
Commencer
Si s [i] <s [j] Alors
Commencer
t [k]: = s [i];
i: = i + 1;
Fin
Autre
Commencer
t [k]: = s [j];
j: = j - 1;
Fin;
Fin;
Fin;
Fin;
Merci à Zouari Lazhar pour cette astuce.