1
resposta

[Projeto] Até agora o mais dificil

Esse é o meu codigo, fui fazendo junto a aula, acho que esse foi o mais dificil de tudo que escrevi

const listaLivros =  require('./array');
const trocaLugares = require('./encontraMenores');

function quickSort(array, esquerda, direita) {
     if(array.length > 1){
        let indiceAtual =  particona(array, esquerda, direita);

        if(esquerda < indiceAtual - 1){
            quickSort(array, esquerda, indiceAtual - 1 );
        }

        if(indiceAtual < direita) {
            quickSort(array, indiceAtual, direita)
        }
     }

    return array;
}

function particona(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){
            trocaLugares(array, atualEsquerda, atualDireita);
            atualEsquerda++
            atualDireita--
        }
    }
    return atualEsquerda;
}

console.log(quickSort(listaLivros, 0, listaLivros.length -1))
1 resposta

Olá Marllon, como vai?

Que bom que você realizou a atividade, é isso aí! Espero que continue se dedicando aos estudos e colocando em prática seus aprendizados.

Caso surja alguma dúvida, fico à disposição.

Abraços e bons estudos!