Pular para o conteĆŗdo principal

šŸ”„ 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​

  1. Percorra o array, comparando cada par de elementos adjacentes.
  2. Se o elemento atual for maior que o próximo, faça a troca.
  3. Ao final de cada passada, o maior elemento "borbulha" para o final da parte não ordenada.
  4. 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.