Pascal - Sorter etter sammenslåing - rekursjon

Her er en rekursiv prosedyre som kan sortere en rekke n-heltall ved hjelp av metoden for sammenslåing

 Prosedyre Sort_Merge (Var t: TAB; g, d: heltall);

Var

m, i, j, k: heltall;

s: TAB;

Begynne

Hvis d> g deretter

Begynne

m: = (g + d) Div 2;

Sort_Merge (t, g, m);

Sort_Merge (t, m + 1, d);

For jeg: = m DownTo g Do

s [i]: = t [i];

For j: = m + 1 Til d Gjør

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

i: = g; j: = d;

For k: = g Til d Gjør

Begynne

Hvis s [i] <s [j] deretter

Begynne

t [k]: = s [i];

i: = i + 1;

Slutt

Ellers

Begynne

t [k]: = s [j];

j: = j - 1;

Slutt;

Slutt;

Slutt;

Slutt;

Takk til Zouari Lazhar for dette tipset.

Forrige Artikkel Neste Artikkel

Beste Tips