Ir ao conteúdo

Posts recomendados

Postado

Eu tenho uma questão de programação que não consegui resolver sobre o quicksort, descrição da questão: "Entrada ->  receba um valor inteiro "n" representando o tamanho do vetor e um valor inteiro "i" representando o índice do pivô.
Saida -> O vetor rearranjado de acordo com o pivô escolhido .

Exemplo de entrada :     5(tamanho do vetor)  1 (indice do vetor)

                                       5 3 2 1 4

 

Saida: 2 1 3 5 4 "

 

Eu fiz o seguinte no codigo

 

image.png.999661f2154af98831029ff59c68907e.pngimage.png.d3ce2deaf7ba591ad7b908d5c71ca676.png

 

Na teoria esse codigo ta ordenando o vetor a partir do pivô, mas percebi que ele n quer ordenar o vetor, apenas rearranjar de acordo com o pivo.

Postado
1 hora atrás, Sávio Barros disse:

Na teoria esse codigo ta ordenando o vetor a partir do pivô, mas percebi que ele n quer ordenar o vetor, apenas rearranjar de acordo com o pivo

 

esse "rearranjo" é o quicksort()...

 

os valores à esquerda do pivo são menores que o pivo. Os da direita são maiores. Você vai rearranjando e o vetor acaba classificado. Isso é o algoritmo. Essa é a teoria. E a prática. O "rearranjo" ordena. Faça num papel e acompanhe. Meio mágico :) 

Postado

Você não esta pegando o pivô, inicie a variável com um valor entre o inicio e o fim, normalmente o pessoal usa:

 

int pivo = (inicio + final) / 2;

 

Isso deve resolver o problema do seu algoritmo.

 

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...