1
resposta

Implementei o algoritmo de forma diferente, está correto?

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

console.log(quickSort(listaLivros));

function quickSort(list,pivot = list[Math.ceil(list.length/2)-1]){

    let result = [];

    list.splice(list.indexOf(pivot),1);
    list.splice(0,0,pivot);

    for(let i=1;i<list.length;i++){

        if(list[i].preco<=pivot.preco){

            list.splice(0,0,list[i]);
            list.splice(i+1,1);
        }
    }

    if(list.length > 2){

        if(list.indexOf(pivot)>0){

            result.push(...quickSort(list.slice(0,list.indexOf(pivot))));
        }
        result.push(pivot);

        if(list.indexOf(pivot)<list.length-1){

            result.push(...quickSort(list.slice(list.indexOf(pivot)+1,list.length)));
        } 
    }else result.push(...list);

    return result;
}
1 resposta

Olá Leonardo!

Após realizar alguns testes, constatei que a sua lógica está excelente e o código está funcionando perfeitamente. Fiquei impressionado com a forma como você se desafiou e conseguiu obter o mesmo resultado por um caminho diferente. Parabéns!

Reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!