Pascal - Ordenar por intercalação-recursão
Aqui está um procedimento recursivo que pode ordenar uma matriz de n inteiros usando o método de Merge sort
Procedimento Sort_Merge (Var t: TAB; g, d: inteiro);Var
m, i, j, k: inteiro;
punhalada;
Início
Se d> g então
Início
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 Para fazer
Início
Se s [i] <s [j] Então
Início
t [k]: = s [i];
i: = i + 1;
Fim
Outro
Início
t [k]: = s [j];
j: = j - 1;
Fim;
Fim;
Fim;
Fim;
Obrigado a Zouari Lazhar por essa dica.