Pascal - Lajittele yhdistämällä - rekursio

Tässä on rekursiivinen menettely, joka voi lajitella n kokonaislukujen joukon yhdistämismenetelmän avulla

 Menettely Sort_Merge (Var t: TAB; g, d: kokonaisluku);

var

m, i, j, k: kokonaisluku;

s: TAB;

Alkaa

Jos d> g

Alkaa

m: = (g + d) Div 2;

Sort_Merge (t, g, m);

Sort_Merge (t, m + 1, d);

I: = m DownTo g Tee

s [i]: = t [i];

J: = m + 1 To d

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

i: = g; j: = d;

K: = g To d

Alkaa

Jos s [i] <s [j]

Alkaa

t [k]: = s [i];

i: = i + 1;

pää

muu

Alkaa

t [k]: = s [j];

j: = j - 1;

end;

end;

end;

end;

Kiitos Zouari Lazharille tästä vinkistä.

Edellinen Artikkeli Seuraava Artikkeli

Top Vinkkejä