Olá!
Estou com uma dúvida após finalizar a aula 3 (quickSort). O código, funciounou, porém, no console está com informações além do console da Ju, e eu não consegui identificar o motivo. Segue o que aparece no console:
> node quickSort.js
[
{ titulo: 'PHP', preco: 15 },
{ titulo: 'Python', preco: 20 },
{ titulo: 'Rust', preco: 22 },
{ titulo: 'Go', preco: 45 },
{ titulo: 'Elixir', preco: 50 },
{ titulo: 'Java', preco: 30 },
{ titulo: 'Scala', preco: 40 },
{ titulo: 'Ruby', preco: 28 },
{ titulo: 'JavaScript', preco: 25 },
{ titulo: 'C#', preco: 33 },
{ titulo: 'C++', preco: 35 }
]
[
{ titulo: 'PHP', preco: 15 },
{ titulo: 'Python', preco: 20 },
{ titulo: 'Rust', preco: 22 },
{ titulo: 'JavaScript', preco: 25 },
{ titulo: 'Ruby', preco: 28 },
{ titulo: 'Java', preco: 30 },
{ titulo: 'C++', preco: 35 },
{ titulo: 'Scala', preco: 40 },
{ titulo: 'C#', preco: 33 },
{ titulo: 'Go', preco: 45 },
{ titulo: 'Elixir', preco: 50 }
]
Segue o código completo:
const listaLivros = require('./array');
const trocaLugar = require('./encontraMenores')
function quickSort(array, esquerda, direita) {
if (array.length > 1) {
let indiceAtual = particiona(array, esquerda, direita);
if (esquerda < indiceAtual - 1) {
quickSort(array, esquerda, indiceAtual - 1);
}
if (indiceAtual < direita) {
quickSort(array, indiceAtual, direita)
}
}
return array;
}
function particiona(array, esquerda, direita) {
let pivo = array[Math.floor((esquerda + direita) / 2)];
let atualEsquerda = esquerda;
let atualDireita = direita;
while (atualEsquerda <= atualDireita) {
while (array[atualEsquerda].preco < pivo.preco) {
atualEsquerda++
}
while (array[atualDireita].preco > pivo.preco) {
atualDireita--
}
if (atualEsquerda <= atualDireita) {
trocaLugar(array, atualEsquerda, atualDireita);
atualEsquerda++;
atualDireita--;
}
return atualEsquerda;
}
}
console.log(quickSort(listaLivros, 0, listaLivros.length - 1))