Cometi algum erro na hora de juntar as listas na função ordena() e estou com dificuldade de entender onde errei;
O mergeSort esta apresentando o resultado:
[ { titulo: 'PHP', preco: 15 }, { titulo: 'Python', preco: 20 } ]
const listaLivros = require('./array');
function mergeSort(array){
if(array.length > 1){
let metade = Math.floor(array.length / 2);
let primeiraParte = mergeSort(array.slice(0, metade));
let segundaParte = mergeSort(array.slice(metade, array.length));
array = ordena(primeiraParte, segundaParte);
}``
return array;
}
function ordena(primeiraParte, segundaParte){
let posicaoAtual1 = 0;
let posicaoAtual2 = 0;
let resultado = [];
while( posicaoAtual1 < primeiraParte.length && posicaoAtual2 < segundaParte.length ){
let produtoAtual1 = primeiraParte[posicaoAtual1];
let produtoAtual2 = segundaParte[posicaoAtual2];
if(produtoAtual1.preco < produtoAtual2.preco){
resultado.push(produtoAtual1);
posicaoAtual1++;
}else{
resultado.push(produtoAtual2);
posicaoAtual2++;
}
}
return resultado.concat(posicaoAtual1 < primeiraParte.legth
? primeiraParte.slice(posicaoAtual1)
: segundaParte.slice(posicaoAtual2));
}
console.log((mergeSort(listaLivros)))