Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Carlos Noberto

C++ Método quicksort não ordenando C++

Recommended Posts

Postado (editado)

Boa tarde pessoal estou desenvolvendo um trabalho para faculdade que envolve ordenação e várias outras coisas

 

Meu atual problema é, meu quicksort não ordenada e eu não consigo achar o erro que ocorreimage.png.5d49ea75c89711b57dd34b93bdcb49b5.png

 

Os elementos que estou inserido na fila são, está inserido certo o problema estar em ordenar mesmo 

	l.inserir_final("Playerunknown s Battlegrounds", 1, "23/03/2017", "PUBG Corp", "Battle Royale", 55.99);
	l.inserir_final("The Witcher 3: Wild Hunt", 2, "19/05/2015", "CD PROJEKT RED", "RPG", 79.99);
	l.inserir_final("DARK SOULS III", 3, "11/04/2016", "FromSoftware, Inc", "RPG", 159.99);
	l.inserir_inicio("Counter-Strike: Global Offensive", 4, "21/ago/2012", "Valve", "FPS", 28.99);

 

O meu código do quicksort, eu estou pegando o ID do meu jogo que  uma lista não ordenada do tipo Jogo que tem o ID,nome do jogo etc  , e passando no método quicksort, mas o problema é que da o erro da imagem a cima, e não acaba nem ordenando ele

	void quickSort(Jogos * cabeca, Jogos* cauda){
		Jogos *pivo = cabeca;
		Jogos *i = cauda;
		Jogos *j = cabeca;
		Jogos *aux;
		
		do{
			while ((i->getId_Jogo()>pivo->getId_Jogo()) && (i->getId_Jogo()>cauda->getId_Jogo())){
				i = i->getProx();
			}
			while ((j->getId_Jogo()<pivo->getId_Jogo()) && (j->getId_Jogo()<cabeca->getId_Jogo())){
				j = j->getAnt();
			}
			
			if (i->getId_Jogo()<=j->getId_Jogo()){
				aux = i;
         		i = j;
         		j = aux;
         		i = i->getProx();
         		j = j->getAnt();
			}
	}while (i->getProx()!=NULL);
	if (i->getId_Jogo() < cauda->getId_Jogo()) quickSort(i, cauda);
 	if (j->getId_Jogo() < cabeca->getId_Jogo()) quickSort(cabeca, j);
			
		
	}

Eu consegui identificar que o erro está sendo causado na chamada recursiva e  o 1 while está com algum erro na lógica, pois ele roda mas ele , mas não consigo arrumar alguma dica?

Editado por Carlos Noberto
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×