Bubble Sort
Definição
O Bubble Sort é um algoritmo de ordenação simples que percorre repetidamente a lista, comparando pares de elementos adjacentes e os trocando de lugar se estiverem fora de ordem.
A cada passada completa, o maior valor entre os elementos comparados vai sendo movido para a última posição disponível da lista.
Apesar de sua simplicidade, é pouco eficiente para listas grandes.
Por que usar
- Fácil de entender e implementar;
- Útil para fins didáticos e ensino de algoritmos;
- Pode ser adequado em casos muito simples, onde a performance não é relevante.
Complexidade
Caso | Tempo |
---|---|
Melhor caso | O(n) |
Médio caso | O(n²) |
Pior caso | O(n²) |
- Estável? Sim
- Espaço adicional: O(1)
(Um algoritmo de ordenação é estável quando mantém a ordem original de elementos iguais após a ordenação.)
Exemplo prático (Python)
def bubble_sort(lista):
n = len(lista)
for i in range(n):
trocou = False
for j in range(0, n - i - 1):
if lista[j] > lista[j + 1]:
lista[j], lista[j + 1] = lista[j + 1], lista[j]
trocou = True
if not trocou:
break # lista já está ordenada
numeros = [5, 3, 8, 1, 2]
bubble_sort(numeros)
print(numeros) # [1, 2, 3, 5, 8]
Visualização do processo
Dada a lista: [5, 3, 8, 1, 2]
- Passo 1:
[3, 5, 1, 2, 8]
- Passo 2:
[3, 1, 2, 5, 8]
- Passo 3:
[1, 2, 3, 5, 8]
→ fim