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));
``