no console me retorna apenas [ { titulo: 'PHP', preco: 15 }, { titulo: 'C++', preco: 35 }, { titulo: 'Go', preco: 45 } ]
const listaLivros = require('./array');
function mergesort(array){
if(array.length > 1){
const meio = Math.floor(array.length / 2);
const part1 = mergesort(array.slice(0,meio));
const part2 =mergesort (array.slice(meio, array.length));
array = ordena(part1,part2)
};
return array;
};
function ordena(part1, part2){
let posicaoAtualP1 = 0;
let posicaoAtualP2 = 0;
const resultado = [];
while (posicaoAtualP1 < part1.length && posicaoAtualP2 < part2.length){
let produtoAtualP1 = part1[posicaoAtualP1];
let produtoAtualP2 = part2[posicaoAtualP2];
if (produtoAtualP1.preco < produtoAtualP2.preco){
resultado.push(produtoAtualP1)
posicaoAtualP1++
}else{
resultado.push(produtoAtualP2)
posicaoAtualP2++
};
return resultado.concat(posicaoAtualP1 < part1.length ? part1.slice(posicaoAtualP1)
: part2.slice(posicaoAtualP2));
};
};
console.log(mergesort(listaLivros));