Bubble Sort in Python
Watch the largest value bubble to the end on every pass, and stop early once the list is sorted.
- Comparing and swapping neighbours
- Why each pass fixes one more value
- The early-exit swapped flag
One pass at a time
O bubble sort compara cada par de elementos vizinhos e os troca de lugar se estiverem fora de ordem. A cada passada, o maior elemento restante vai "subindo" até o fim da lista, como uma bolha que sobe na água. É um algoritmo fácil de entender, ótimo para aprender como a ordenação funciona.
Pontos-chave
- Compare each pair of neighbours and swap them if they are out of order.
- After pass k, the last k values are in their final places.
- If a pass makes no swap, stop: the list is sorted.
O(n²)in general; real code usessorted().
Quando usar?
- Treinar o raciocínio para resolver problemas e entender como um algoritmo funciona passo a passo.
- Escolher a solução certa quando é preciso processar muitos dados ou deixar o programa mais rápido.
- Se preparar para provas, exercícios e entrevistas de programação.
Visualizador de Ordenação por bolha (bubble sort) em Python
O(n²)Use Executar ou Passo para acompanhar cada comparação e movimento dos dados.
Código de exemplo
def bubble_sort(values):
result = values.copy()
for end in range(len(result) - 1, 0, -1):
swapped = False
for index in range(end):
if result[index] > result[index + 1]:
result[index], result[index + 1] = result[index + 1], result[index]
swapped = True
if not swapped:
break
return result
print(bubble_sort([5, 1, 4, 2, 8]))
Resultado da execução
[1, 2, 4, 5, 8]
Explicação do código
Depois de cada passada, o maior valor da parte não ordenada já está na posição final, então a passada seguinte fica um elemento mais curta. A variável swapped registra se houve alguma troca. Se nenhuma troca acontecer, a lista já está ordenada e o laço para mais cedo. No pior caso, a complexidade é O(n²), por isso não é indicado para grandes volumes de dados.
Altere os valores e execute o programa no compilador Python online CodeUtility sem instalar Python.
Exercícios práticos
Tente modificar o código seguindo as sugestões abaixo. Mudar o código e observar o resultado ajuda você a entender muito mais do que só ler.
- Teste com uma lista vazia, uma lista de um único elemento e uma lista com valores repetidos.
- Imprima o estado depois de cada passo para ver o algoritmo trabalhando.
- Meça o tempo com 100, 1.000 e 10.000 elementos e compare com outra solução.
Pratique com um desafio
Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.
- Count Inversions Count the out-of-order pairs in a list. Difícil
- Mediana de uma Lista Encontre o valor central de uma lista após ordená-la. Fácil