quando eu uso a recursao no mesmo codigo do instrutor, a constante parte 1 e 2 ficar indefinidas, já quando eu deixo de chamar da certinho, alguem pode me ajudar por favor?
const livros = require('./listalivros');
const listaordenada = [];
function mergesort(array){
if(array.length > 1){
const meio = Math.floor(array.length/2);
const parte1 = mergesort(array.slice(0, meio));
const parte2 = mergesort(array.slice(meio, array.length));
ordena(parte1,parte2,listaordenada);
}
}
function ordena(arr1, arr2,arr3){
var i = 0
var o = 0
while(i < arr1.length
&& o < arr2.length){
if(arr1[i].preco < arr2[o].preco){
arr3.push(arr1[i]);
i++;
}else{
arr3.push(arr2[o]);
o++;
}
}
while( i < arr1.length
|| o < arr2.length){
if(o < arr2.length){
arr3.push(arr2[o]);
o++;
}else{
arr3.push(arr1[i]);
i++;
}
}
}
mergesort(livros);
console.log(listaordenada);