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:  
Renan.mmerlo

Ordenação em Bolha (bubble sort)

Recommended Posts

Boa Tarde pessoal,

Gostaria de saber como funciona um bubble sort e se daria para alguem implementar em C um exemplo desse tipo de ordenação.

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites
Laverson    0

Seria mais ou menos nesse estilo ai:


for (x=0; x<max; x++)
{
for (y=0; y<max; y++)
{
if (ponto[y+1] > ponto[y])
{
mei = ponto[y];
ponto[y] = ponto[y+1];
ponto[y+1] = mei;
strcpy(temp,nome[y]);
strcpy(nome[y],nome[y+1]);
strcpy(nome[y+1],temp);
}
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
dontpanic    102

Aqui tem implementação dele em várias linguagens:

http://pt.wikipedia.org/wiki/Bubble_sort

Ele funciona mais ou menos assim:

Vetor -> 3, 1, 5, 2, 4

Começando do Indice 1, ele testa se o segundo numero é menor que o primeiro

Nesse, caso: 1 < 3

[3][1] 5, 2, 4

Se for menor, ele troca um por outro

1, 3, 5, 2, 4

Repete a mesma coisa com os items seguintes

1, [3][5] 2, 4 --> 5 não é menor que 3

1, 3, [5][2] 4 --> 2 é menor que 5, troca

1, 3, 2 [5][4] --> 4 é menor que 5, troca

1, 3, 2, 4, 5

Depois dessa primeira passagem, o algoritmo já pode deduzir uma coisa de certeza: O ultimo item já é o maior número do vetor. Então não precisa mais mexer nele.

Na segunda passagem, o algoritmo só testa até o quarto elemento:

[1][3] 2, 4, (5) --> 3 maior que 1, não troca

1, [3][2] 4, (5) --> 2 menor que 3, troca

1, 2, [3][4] (5) --> 4 maior que 3, não troca

1, 2, 3, 4, 5

Existe um bubble sort "inteligente" que faria mais uma passagem e veria que não houve mais trocas e portanto o vetor já tá ordenado. Pra isso precisa criar alguma variavel de controle pra testar essa condição.

Mas normalmente o algoritmo continua seguindo a mesma logica:

[1][2] 3, (4, 5) --> 2 maior que 1, não troca

1, [2][3] (4, 5) --> 3 maior que 2, não troca

1, 2, 3, 4, 5

[1][2] (3, 4, 5) --> 2 maior que 1, não troca

1, 2, 3, 4, 5

Fim.

  • 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

×