Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

MergeSort em javaScript

Tentei fazer o mergeSort no JavaScript, mas não funciona, qual o problema ? Segue o link > https://jsfiddle.net/1rrk6ve0/

2 respostas

Oi Thiago, para a gente conseguir ajudar mais, pode dizer o que acontece? A ordenação fica errada? Da um erro de execução?

solução!

Oi Alberto já resolvi, vlw, problema era falta de atenção, vlw

function mergeSort(arr,ini,fim){
  if((fim-ini) > 1){
    var meio = Math.round((fim+ini)/2);
    mergeSort(arr,ini,meio);
    mergeSort(arr,meio,fim);
    merge(arr,ini,meio,fim);
  }

}
function merge(arr,ini,meio,fim){
  var att=0,att1 = ini,att2= meio, y=[];
  while(att1 < meio && att2 < fim){
      if(arr[att1] < arr[att2])
        y[att] = arr[att1++];
      else
        y[att] = arr[att2++];

      att++;
  }
  while(att1 < meio){
    y[att++] = arr[att1++];
  }
  while(att2 < fim){
    y[att++] = arr[att2++]; 
  }
  for(var i = 0 ; i < att ; i++){
    vetor[ini+i] = y[i];

  }
}
vetor = [1,2,3,4,5,60,7,8,-1,-2,-3,-4,-5,-6,0,50,9]
mergeSort(vetor,0,vetor.length);

Assim está indo tudo ok, vlw

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software