const edFolha = [
{
nome:"PHP",
preco: 56
},
{
nome: "JavaScript",
preco: 27
},
{
nome: "Java",
preco: 89
},
{
nome: "Go",
preco: 47
},
{
nome: "Elixir",
preco: 46
}
]
const edGalho = [
{
nome: "Python",
preco: 34
},
{
nome:"Rust",
preco: 22
},
{
nome: "Ruby",
preco: 26
},
{
nome: "C#",
preco: 375
},
{
nome: "C++",
preco: 387
},
{
nome: "Scala",
preco: 42
}
]
module.exports = { edFolha, edGalho }
const ListaDeLivros = require ("./listalivros")
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));
array = ordena(parte1, parte2)
} return array;
}
function ordena(parte1, parte2){
let posiçãoatualparte1 = 0
let posiçãoatualparte2 = 0
const resultado = []
while(posiçãoatualparte1 < parte1.length && posiçãoatualparte2 < parte2.length){
let produtoatualparte1 = parte1[posiçãoatualparte1]
let produtoatualparte2 = parte2[posiçãoatualparte2]
if(produtoatualparte1.preco < produtoatualparte2.preco){
resultado.push(produtoatualparte1)
posiçãoatualparte1++;
}else{
resultado.push(produtoatualparte2)
posiçãoatualparte2++;
}
}
return resultado.concat(posiçãoatualparte1 < parte1.length ? parte1.slice(posiçãoatualparte1) : parte2.slice(posiçãoatualparte2))
}
const galho = ListaDeLivros.edGalho
const folha = ListaDeLivros.edFolha
console.log(mergeSort(ListaDeLivros.edFolha))
console.log(mergeSort(ListaDeLivros.edGalho))
function junta(lista1, lista2){
let listafinal = [];
let posiçãoAtualLista1 = 0;
let posiçãoAtualLista2 = 0;
let atual = 0;
while (posiçãoAtualLista1 < lista1.length && posiçãoAtualLista2 < lista2.length){
let produtoAtualLista1 = lista1[posiçãoAtualLista1];
let produtoAtualLista2 = lista2[posiçãoAtualLista2];
if(produtoAtualLista1.preco < produtoAtualLista2.preco){
listafinal[atual] = produtoAtualLista1;
posiçãoAtualLista1++
}else{
listafinal[atual] = produtoAtualLista2;
posiçãoAtualLista2++
} atual++
}
while (posiçãoAtualLista1 < lista1.length){
listafinal[atual] = lista1[posiçãoAtualLista1];
posiçãoAtualLista1++;
atual++
}
while (posiçãoAtualLista2 < lista2.length){
listafinal[atual] = lista1[posiçãoAtualLista2];
posiçãoAtualLista2++;
atual++;
}
return listafinal
}
console.log(junta(galho, folha))