Ordenação por fusão - recursão

Fevereiro 2017

Veja um procedimento para organizar uma tabela de números inteiros, utilizando o método de ordenação por mistura:

Procedimento Ordenação_por_Fusão (Var t : TAB; g, d : integer);     
Var     
   m, i, j, k : integer;     
   s : TAB;     
Begin     
     If d > g Then     
     Begin              
          m := (g + d) Div 2;     
          Ordenação_por_Fusão (t, g, m);     
          Ordenação_por_Fusão (t, m + 1, d);     
               
     For i := m DownTo g Do     
              s[i] := t[i];     
               
     For j := m + 1 To d Do     
              s[d + m + 1 - j] := t[j];     
               
     i := g; j := d;     
          For k := g To d Do     
          Begin     
               If s[i] < s[j] Then     
               Begin     
                    t[k] := s[i];     
                    i := i + 1;     
               End     
               Else     
                   Begin     
                         t[k] := s[j];     
                         j := j - 1;     
                   End;     
          End;     
     End;     
End;



Tradução feita por Lucia Maurity y Nouira

Veja também

Artigo original publicado por . Tradução feita por pintuda. Última modificação: 12 de janeiro de 2012 às 18:22 por pintuda.
Este documento, intitulado 'Ordenação por fusão - recursão', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.