Ir ao conteúdo
  • Cadastre-se

Ordenação em Bolha (bubble sort)


Renan.mmerlo

Posts recomendados

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.

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