segue os 2 códigos usados na aula de mergeSort, não estou entendendo como que o programa n esta conseguindo ordenar o array mesmo não apresentando nenhum erro quando rodo o codigo,
codigo 1 (livros):
const listaLivros = [
{
titulo: "PHP",
preco: 15.00
},
{
titulo: "JavaScript",
preco: 25.00
},
{
titulo: "java",
preco: 30.00
},
{
titulo: "GO",
preco: 45.00
},
{
titulo: "Elixir",
preco: 50.00
},
{
titulo: "Python",
preco: 20.00
},
{
titulo:"Rust",
preco: 22.00
},
{
titulo:"Ruby",
preco: 28.00
},
{
titulo:"C#",
preco: 33.00
},
{
titulo:"C++",
preco: 35.00
},
]
module.exports = {listaLivros}
codigo 2 (Mergesort)
const listaLivros = require('./livros')
function mergeSort(arr){
if(arr.length > 1){
const midle = Math.floor(arr.length/2);
const pt1 = mergeSort(arr.slice(0, midle));
const pt2 = mergeSort(arr.slice(midle, arr.length));
arr = ordena(pt1,pt2);
}
return arr;
}
function ordena(pt1, pt2){
let posicaoAtualpt1 = 0;
let posicaoAtualpt2 = 0;
const resultado = [];
while (posicaoAtualpt1 < pt1.length && posicaoAtualpt2 < pt2.length){
let produtoAtualpt1 = pt1[posicaoAtualpt1];
let produtoAtualpt2 = pt2[posicaoAtualpt2];
if (produtoAtualpt1.preco < produtoAtualpt2.preco){
resultado.push(produtoAtualpt1);
posicaoAtualpt1++;
} else{
resultado.push(produtoAtualpt2);
posicaoAtualpt2++;
}
}
return resultado.concat (posicaoAtualpt1 < pt1.length ? pt1.slice(posicaoAtualpt1) : pt2.slice(posicaoAtualpt2))
}
console.log(mergeSort(listaLivros));