1
resposta

Ajuda por favor, recebi a mensagem maximum call stack size execede e não consigo resolver

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

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)) Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

isso acontece quando tem erro na recursão das funções. É como se fose um loop infinito. dá uns console.log pra saber o que tá acontecendo com o array nas chamadas da função recursiva