Discussão:Merge sort

O conteúdo da página não é suportado noutras línguas.
Adicionar tópico
Origem: Wikipédia, a enciclopédia livre.
public static void mergeSort(int [ ] x,int [ ] xTemp, int esq, int dir)
       {
               if(esq < dir)
               {
                       int medio = (esq + dir)/2;
                       mergeSort(x,xTemp,esq,medio);
                       mergeSort(x,xTemp,medio+1,dir);
                       mezclar(x,xTemp,esq,medio+1,dir);
               }
       }
       
       public static void mezclar (int [ ] x,int [ ] xAux,int posEsq, int posDir,int posFin)
       {
               int finIzq = posDir - 1;
               int posAux = posEsq;
               int numElementos = posFin - posEsq +1;
               // Busca principal
               while(posEsq <= finIzq && posDir <= posFin)
                       if( x[posEsq] < x[posDir] )
                               xAux[posAux++] = x[posEsq++];
                       else
                               xAux[posAux++] = x[posDir++];
                       // Copia primeira metade
                       while (posEsq <= finIzq)
                               xAux[posAux++] = x[posEsq++];
                       // Copia segunda metade
                       while (posDir <= posFin)
                               xAux[posAux++] = x[posDir++];
                       // Copia veteor temporário no principal
                       for(int i = 0; i < numElementos; i++, posFin--)
                               x[posFin] = xAux[posFin];
               }
       }

Junto ou separado?[editar código-fonte]

Não seria "mergesort" ao invés de "merge sort"?? Lipe λ FML 00h34min de 21 de Março de 2008 (UTC)

Algoritmo mais eficiente provado "cientificamente" ??[editar código-fonte]

O que seria cientificamente? Onde está a prova? Radix, por exemplo, é mais eficiente, pois é O(n), que é menor que O(n.log(n)).


Recursão e eficiência ?[editar código-fonte]

A frase abaixo da introdução esta conceitualmente errada e deve ser removida:

"Como o algoritmo do Merge Sort usa a recursividade em alguns problemas esta técnica não é muito eficiente devido ao alto consumo de memória e tempo de execução."

Isso pode levar a conclusão errada de que o quicksort é ineficiente já que ele utiliza recursão.

Revisão de português é necessária.[editar código-fonte]

O texto está pontuado de forma incorreta em praticamente todas as frases, o que torna difícil a compreensão das ideias e muitas vezes compromete a correção das afirmações.