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.

Article Précédent Article Suivant

Les Meilleurs Conseils