Na assinatura do método particiona do Quicksort há um parâmetro chamado de que parece não ser utilizado na implementação. Então, poderia ser utilizado apenas os parâmetros nomes e ate?
private static int particiona(String[] nomes, int ate)
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Na assinatura do método particiona do Quicksort há um parâmetro chamado de que parece não ser utilizado na implementação. Então, poderia ser utilizado apenas os parâmetros nomes e ate?
private static int particiona(String[] nomes, int ate)
Boa noite, Thiago! Como vai?
Onde isso ocorre? Poderia indicar pra mim para que eu possa dar uma olhada? Assim poderei te ajudar de forma efetiva!
Qualquer coisa é só falar!
Grande abraço e bons estudos, meu aluno!
Boa noite. Tudo bom?
A implementação do particiona apresentada durante a explicação do Quicksort é a seguinte:
private static int particiona(Nota[] notas, int inicial, int termino) {
int menoresEncontrados = 0;
Nota pivo = notas[termino - 1];
for(int analisando = 0; analisando < termino -1; analisando ++) {
Nota atual = notas[analisando];
if(atual.getValor() <= pivo.getValor()) {
troca(notas, analisando, menoresEncontrados);
menoresEncontrados++;
}
}
troca(notas, termino -1, menoresEncontrados);
return menoresEncontrados;
}
Em nenhum momento é usado o parâmetro inicial. Uma alternativa seria:
private static int particiona(Nota[] notas, int inicial, int termino) {
int menoresEncontrados = inicial;
Nota pivo = notas[termino - 1];
for(int analisando = inicial; analisando < termino -1; analisando ++) {
Nota atual = notas[analisando];
if(atual.getValor() <= pivo.getValor()) {
troca(notas, analisando, menoresEncontrados);
menoresEncontrados++;
}
}
troca(notas, termino -1, menoresEncontrados);
return menoresEncontrados;
}