Módulo 11 - Ordenação: colocar em ordem

Ordenação da bolha: trocar vizinhos

8 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 08/07/2026

O que você vai aprender

  • Entender a ordenação da bolha: comparar vizinhos e trocar se fora de ordem.
  • Acompanhar uma passada da bolha, vendo o maior subir ao fim.
  • Perceber que várias passadas são necessárias até tudo ficar em ordem.
  • Reconhecer a troca (swap) de dois valores como operação central.

Comparar vizinhos e trocar

A ordenação da bolha nasce de uma ideia que uma criança entenderia: se dois vizinhos estão na ordem errada, troque-os de lugar. Você percorre a lista da esquerda para a direita, olhando pares de itens grudados. Se o da esquerda é maior que o da direita, eles estão fora de ordem, então você os troca. Se já estão na ordem certa, deixa como está e segue para o próximo par. Ao terminar uma passada completa pela lista, acontece algo bonito: o maior valor de todos, empurrado troca após troca, chegou ao fim da lista, como uma bolha de ar que sobe até o topo da água. Por isso o método se chama bolha. O maior já está no lugar; falta ordenar o resto.

Uma passada só não basta, porque ela garante apenas que o maior chegou ao fim. Os outros valores podem ainda estar desarrumados. Então você repete: faz outra passada, e o segundo maior sobe até a penúltima posição; outra, e o terceiro maior se acomoda; e assim por diante. Cada passada acerta mais um item nas posições do fim, então a parte já ordenada cresce de trás para frente. Você para quando uma passada inteira não precisa de nenhuma troca, sinal de que todos os vizinhos já estão em ordem e, portanto, a lista inteira está ordenada. Esse é o momento em que a bolha declara vitória.

Uma passada da ordenação da bolha sobre a lista 5, 2, 8, 1. Em quatro quadros, pares vizinhos são comparados: 5 e 2 trocam (vira 2, 5, 8, 1); 5 e 8 ficam; 8 e 1 trocam (vira 2, 5, 1, 8). O 8, o maior, chega ao fim, destacado como já em sua posição final.
Numa passada, o maior valor (8) sobe até o fim trocando com vizinhos. Repetindo as passadas, a lista se ordena.

A troca de dois valores, com cuidado

A operação no coração da bolha é a troca de dois valores, e ela esconde uma pegadinha clássica. Trocar o conteúdo de duas caixas parece simples: ponha o valor da caixa A na B e o da B na A. Mas se você faz direto, na primeira linha o valor de A sobrescreve o de B, e o valor original de B se perde para sempre; a segunda linha acaba copiando A para A. O resultado é as duas caixas com o mesmo valor, não trocadas. A solução é usar uma terceira caixa, um auxiliar, para guardar um dos valores antes de sobrescrever: guarde A no auxiliar, copie B para A, e então copie o auxiliar para B. É como trocar o conteúdo de dois copos cheios: você precisa de um terceiro copo vazio para não derramar.

// troca correta de duas posições usando um auxiliar:
auxiliar <- lista[i]
lista[i] <- lista[j]
lista[j] <- auxiliar

// a bolha, em pseudocódigo:
repita
  trocou <- falso
  para i de 0 até tamanho - 2 faça
    se lista[i] > lista[i + 1] então
      auxiliar <- lista[i]
      lista[i] <- lista[i + 1]
      lista[i + 1] <- auxiliar
      trocou <- verdadeiro
    fim
  fim
até trocou = falso   // parou quando uma passada não trocou nada

A troca usa um auxiliar para não perder um valor. A bolha repete passadas até uma delas não trocar nada.

🎮 Jogo da aula

O resultado de uma passada

Faça UMA passada da ordenação da bolha na lista abaixo (compare e troque vizinhos, esquerda para a direita) e escolha o resultado.

lista <- [3, 1, 4, 2]
// uma passada: compara (3,1)->troca, (3,4)->fica, (4,2)->troca

Simples de entender, lenta de rodar

A ordenação da bolha é campeã de clareza, mas não de velocidade. Repare que ela usa dois laços aninhados: um para as passadas e outro para percorrer os pares dentro de cada passada. Você já sabe do módulo de laços aninhados o que isso significa: o custo cresce com o quadrado do tamanho. Para dez itens, são cerca de cem comparações; para mil, cerca de um milhão; para um milhão de itens, um trilhão, o que é inviável. Por isso a bolha é ótima para aprender e para listas pequenas, mas ninguém a usa para ordenar dados grandes de verdade. As linguagens reais trazem algoritmos bem mais espertos, que ordenam um milhão de itens num piscar de olhos usando ideias como dividir para conquistar. A bolha ensina o raciocínio; a eficiência dela é o gancho perfeito para o próximo módulo.

Teste rápido

Por que trocar os valores de duas variáveis exige uma terceira variável auxiliar?

Perguntas frequentes

Como funciona a ordenação da bolha?
Ela percorre a lista comparando itens vizinhos e trocando os que estão fora de ordem. A cada passada, o maior valor restante sobe até o fim, como uma bolha. Repete as passadas até nenhuma troca ser necessária, quando a lista está ordenada. É o método mais fácil de entender.
Por que se chama bolha?
Porque, a cada passada, o maior valor vai subindo posição por posição até o fim da lista, como uma bolha de ar que sobe até o topo da água. Os valores maiores borbulham para o fim, um por passada, até todos estarem no lugar. A imagem dá nome ao método.
Por que preciso de uma variável auxiliar para trocar dois valores?
Porque, sem ela, ao copiar o primeiro valor para o lugar do segundo, o valor original do segundo é sobrescrito e se perde. O auxiliar guarda um dos valores antes da sobrescrita, como um terceiro copo vazio permite trocar o conteúdo de dois copos cheios sem derramar. É um cuidado essencial.
A ordenação da bolha é usada na prática?
Quase não, para dados grandes: ela é lenta, com custo que cresce ao quadrado do tamanho. É excelente para aprender e serve para listas pequenas. Para ordenar de verdade, as linguagens trazem algoritmos muito mais rápidos, prontos e testados, que você usa em uma linha.
Quantas passadas a bolha precisa?
No pior caso, quase tantas quanto o número de itens, porque cada passada acomoda só mais um valor no fim. Uma otimização comum é parar assim que uma passada não faz nenhuma troca, sinal de que a lista já está ordenada. Isso ajuda quando a lista está quase em ordem.
Por que a bolha usa laços aninhados?
Porque são duas repetições encaixadas: um laço externo para as passadas e um interno para percorrer e comparar os pares dentro de cada passada. Como você viu no módulo de laços aninhados, isso faz o custo crescer com o quadrado do tamanho, o que explica a lentidão da bolha em listas grandes.

Fontes

Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.