Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
hugojf

Ajuda com Bubble Sort

Recommended Posts

Bem comecei a mexer com C++ a pouco tempo, e entrei num curso na faculdade aqui perto. porém tem uma aula que fala sobre Bubble Sort, e tentei passar para um programa e tal. Mas algo nao da certo :/

Pois ele nao termina de ordenar os numeros. Se alguem poder arrumar o codigo pra mim. XD. Na verdade se ele ja estivesse em um exemplo pronto seria mais fácil aprende pra mim. Pois eu posso ver o que esta acontecendo e comparar com o meu.

Codigo:

#include <iostream>

int main()

{

using namespace std;

int n;

n = 6;

int A[n];

int temp;

int i, j;

A[0] = 1;

A[1] = 2;

A[2] = 3;

A[3] = 5;

A[4] = 4;

A[5] = 9;

cout << endl << endl << A [0] << endl << A[1] << endl << A[2] << endl << A[3] << endl << A[4] << endl; // Mostra como os numeros estão antes de arrumar

for(i = n - 1; i > 0; i--)

{

for (j = 0; j < i; j++)

{

if(A[j] < A[j+1]);

{

temp = A[j];

A[j] = A[j + 1];

A[j + 1] = temp;

}

}

}

cout << endl << endl << A [0] << endl << A[1] << endl << A[2] << endl << A[3] << endl << A[4] << endl; // Mostra os numeros arrumados

system("PAUSE");

return 0;

}

Porque quando eu adiciono outro numero que nao esteja nao ordem ele nao termina de arrumar? Ja tentei varios site e tutoriais, e quero resolver essa duvida antes da proxima aula porque eu to quase me matando com isso. :P

Por favor me ajudem e se for arrumar tentem deixar o codigo nesse estilo simples. So me fala o que esta errado :x

Obrigado por enquanto.

Hugo.

Pega leve ae, só tenho 14 anos e 1 semana de aprendizado xD

Compartilhar este post


Link para o post
Compartilhar em outros sites

nesta parte:

if(A[j] < A[j+1]);
{
temp = A[j];
A[j] = A[j + 1];
A[j + 1] = temp;

o correto não seria:

if(A[j+1] < A[j]);
{
temp = A[j];
A[j] = A[j + 1];
A[j + 1] = temp;

Por que pelo que eu sei a verificação deve ser se o numero da frente é menor que o de trás

Compartilhar este post


Link para o post
Compartilhar em outros sites

o algoritmo do bubble sort em versão do Visual Studio:

// testado e aprovado
void bubble()
{
int n = tamanho;

for (int j = 0; j < tamanho; j++)
{
for(int i = 0; i < tamanho; i++)
{
if (v[i]>v[i+1])
{
v[i] ^= v[i+1];
v[i+1] ^= v[i];
v[i] ^= v[i+1];
}
}
}
return;
}

para o dev c

// testado e aprovado
void bubble()
{
int n = tamanho;

for (int j = 0; j < tamanho; j++)
{
for(int i = 0; i < tamanho; i++)
{
if (v[i-1]>v[i])
{
v[i-1] ^= v[i];
v[i] ^= v[i-1];
v[i-1] ^= v[i];
}
}
}
return;
}

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

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
Entre para seguir isso  





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

×