Ir ao conteúdo
  • Cadastre-se

Ajuda com Bubble Sort


hugojf

Posts recomendados

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

Link para o comentário
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;
}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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...