Pascal - Ordina per unione-ricorsione

Ecco una procedura ricorsiva che può ordinare una matrice di n interi usando il metodo di Unisci ordinamento

 Procedura Sort_Merge (Var t: TAB; g, d: intero);

Var

m, i, j, k: intero;

s: TAB;

Inizio

Se d> g Allora

Inizio

m: = (g + d) Div 2;

Sort_Merge (t, g, m);

Sort_Merge (t, m + 1, d);

Per i: = m DownTo g Do

s [i]: = t [i];

Per j: = m + 1 To d Do

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

i: = g; j: = d;

Per k: = g per fare

Inizio

Se s [i] <s [j] Allora

Inizio

t [k]: = s [i];

i: = i + 1;

Fine

Altro

Inizio

t [k]: = s [j];

j: = j - 1;

Fine;

Fine;

Fine;

Fine;

Grazie a Zouari Lazhar per questo suggerimento.

Articolo Precedente Articolo Successivo

I Migliori Consigli