š Bubble Sort
Introduçãoā
O Bubble Sort é um algoritmo de ordenação simples baseado em comparações.
Ele percorre a lista diversas vezes, comparando pares de elementos adjacentes e trocando-os de lugar quando estão fora de ordem.
Esse processo Ʃ repetido atƩ que o array esteja totalmente ordenado.
Complexidadeā
- Tempo (pior caso e médio): O(n²)
- Tempo (melhor caso ā jĆ” ordenado): O(n)
- EspaƧo: O(1) ā algoritmo in-place
Como funcionaā
- Percorra o array, comparando cada par de elementos adjacentes.
- Se o elemento atual for maior que o próximo, faça a troca.
- Ao final de cada passada, o maior elemento "borbulha" para o final da parte não ordenada.
- Repita o processo, reduzindo a Ôrea considerada, até não haver mais trocas.
Implementação (Python)ā
def bubble_sort(arr):
n = len(arr)
for i in range(n):
trocou = False
for j in range(0, n - i - 1):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
trocou = True
if not trocou:
break
Exemplo de usoā
arr = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(arr)
print(arr) # SaĆda: [11, 12, 22, 25, 34, 64, 90]
Vantagens e desvantagensā
ā Vantagensā
- FƔcil de entender e implementar.
- Não requer memória extra além do array original.
- A versão otimizada consegue detectar se o array jÔ estÔ ordenado.
ā Desvantagensā
- Muito lento para listas grandes (O(n²)).
- Pouco utilizado em aplicaƧƵes reais, servindo mais para fins didƔticos.
Quando usar Bubble Sortā
- Para fins educacionais, ao aprender sobre algoritmos de ordenação.
- Em coleƧƵes muito pequenas ou que jƔ estejam quase ordenadas.
Algoritmos relacionadosā
- Selection Sort: seleciona o menor elemento e o coloca na posição correta.
- Insertion Sort: constrói o array ordenado inserindo um elemento por vez.