Pascal - Ordenar por fusión-recursión

Aquí hay un procedimiento recursivo que puede ordenar una matriz de n enteros usando el método de clasificación por fusión

 Procedimiento Sort_Merge (Var t: TAB; g, d: integer);

Var

m, i, j, k: entero;

s: TAB;

Empezar

Si d> g entonces

Empezar

m: = (g + d) Div 2;

Sort_Merge (t, g, m);

Sort_Merge (t, m + 1, d);

Para i: = m DownTo g Do

s [i]: = t [i];

Para j: = m + 1 To d Do

s [d + m + 1 - j]: = t [j];

i: = g; j: = d;

Para k: = g a d Do

Empezar

Si s [i] <s [j] Entonces

Empezar

t [k]: = s [i];

i: = i + 1;

Fin

Más

Empezar

t [k]: = s [j];

j: = j - 1;

Fin;

Fin;

Fin;

Fin;

Gracias a Zouari Lazhar por este consejo.

Artículo Anterior Artículo Siguiente

Los Mejores Consejos