Pascal - Sortera efter sammanslagning - rekursion

Här är ett rekursivt förfarande som kan sortera en grupp av n heltal med hjälp av metoden för sammanslagning

 Förfarande Sort_Merge (Var t: TAB; g, d: heltal);

var

m, jag, j, k: heltal;

s: TAB;

Börja

Om d> g Då

Börja

m: = (g + d) Div 2;

Sort_Merge (t, g, m);

Sort_Merge (t, m + 1, d);

För jag: = m DownTo g Do

s [i]: = t [i];

För j: = m + 1 Till d Gör

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

i: = g; j: = d;

För k: = g Till d Gör

Börja

Om s [i] <s [j] Då

Börja

t [k]: = s [i];

i: = i + 1;

Slutet

Annan

Börja

t [k]: = s [j];

j: = j - 1;

Slutet;

Slutet;

Slutet;

Slutet;

Tack till Zouari Lazhar för detta tips.

Tidigare Artikel Nästa Artikel

Bästa Tipsen