const lista = [
{
titulo: "Python",
preco: 45
},
{
titulo: "Rust",
preco: 25
},
{
titulo: "Ruby",
preco: 40
},
{
titulo: "C#",
preco: 28
},
{
titulo: "C++",
preco: 35
},
{
titulo: "Scala",
preco: 40
},
{
titulo: "Java",
preco: 43
},
{
titulo: "JavaScript",
preco: 20
},
{
titulo: "Go",
preco: 30
},
{
titulo: "Elixir",
preco: 50
}
];
module.exports = {lista}
Não consigo identificar o por que meu código abaixo não está ordenando a lista como deveria.
const lista = require('./listas2')
function mergeSort (arr) {
if(arr.length > 1) {
const meio = Math.floor(arr.length / 2);
const parte1 = mergeSort(arr.slice(0, meio));
const parte2 = mergeSort(arr.slice(meio, arr.length));
arr = ordena(parte1, parte2);
}
return arr;
}
function ordena (parte1, parte2){
let posicaoParte1 = 0;
let posicaoParte2 = 0;
const resultado = [];
while(posicaoParte1 < parte1.length && posicaoParte2 < parte2.length){
let produtoParte1 = parte1[posicaoParte1];
let produtoParte2 = parte2[posicaoParte2];
if(produtoParte1.preco < produtoParte2.preco){
resultado.push(produtoParte1)
posicaoParte1++
} else {
resultado.push(produtoParte2)
posicaoParte2++
}
}
return resultado.concat(posicaoParte1 < parte1.length
? parte1.slice(posicaoParte1)
: parte2.slice(posicaoParte2))
}
console.log(mergeSort(lista));