const listaLivros = require ("./array")
function margeSort(array){
if (array.length > 1){
const meio = Math.floor(array.length / 2);
const parte1 = margeSort(array.slice(0, meio))
const parte2 = margeSort(array.slice(meio, array.length))
array = ordena(parte1, parte2)
}
return array
}
function ordena(parte1, parte2){
let posicaoAtualP1 = 0;
let posicaoAtualP2 = 0;
const resultado = [];
while (posicaoAtualP1 < parte1.length && posicaoAtualP2 < parte2.length){
let produtoAtualP1 = parte1[posicaoAtualP1];
let produtoAtualP2 = parte2[posicaoAtualP2];
if (produtoAtualP1.preco < produtoAtualP2.preco){
resultado.push(produtoAtualP1)
posicaoAtualP1++
} else {
resultado.push(posicaoAtualP2);
posicaoAtualP2++
}
}
return resultado.concat(posicaoAtualP1 < parte1.length ? parte1.slice(posicaoAtualP1) :
parte2.slice(posicaoAtualP2))
}
console.log(margeSort(listaLivros))
Está retornando:
[ 0, 1, 2, 3, 4, 5, 0, 1, 2, 0, { titulo: 'Go', preco: 45 } ]
Não consegui achar o erro do código