Algoritmo de ordenação que compara elementos vizinhos e troca quando estão fora de ordem.
O Bubble Sort é provavelmente o primeiro algoritmo de ordenação que você aprende. A ideia é simples: percorra o array comparando vizinhos, e se estiverem fora de ordem, troque. O nome vem do comportamento dos elementos maiores, que "borbulham" para o final a cada passada. Depois de uma passada completa, o maior elemento está na última posição. Depois de duas, os dois maiores estão no lugar. E assim por diante. Na prática, ninguém usa Bubble Sort em produção. Merge Sort e Quick Sort são ordens de magnitude mais rápidos. Mas entender Bubble Sort ajuda a construir intuição sobre ordenação e complexidade.
“O Bubble Sort é didático, mas lento. Use Merge Sort ou Quick Sort para qualquer coisa séria.”
Dois loops aninhados. O externo roda n-1 vezes, o interno roda em média n/2.
Comparações: (n-1) + (n-2) + ... + 1 = n(n-1)/2 = O(n²)
Ordena in-place. Só usa variáveis auxiliares para a troca.
Array já ordenado + flag de otimização = uma passada sem trocas.
Array em ordem reversa. Cada elemento precisa percorrer todo o array.
| Algoritmo | Tempo | Espaco | Estavel | Melhor Para |
|---|---|---|---|---|
| Bubble Sort(atual) | O(n²) | O(1) | Sim | Arrays pequenos, fins didáticos |
| Merge Sort | O(n log n) | O(n) | Sim | Grandes datasets, quando estabilidade importa |
| Quick Sort | O(n log n) | O(log n) | Nao | Uso geral, boa performance média |
| Insertion Sort | O(n²) | O(1) | Sim | Arrays pequenos, dados chegando em streaming |
Pratique respondendo a perguntas comuns de entrevistas tecnicas. Clique em uma pergunta para iniciar uma sessao de pratica com IA.
1def bubble_sort(array):Definição2 n = len(array)3 4 for i in range(n - 1):Loop Externo5 swapped = FalseOtimização6 7 for j in range(n - i - 1):Loop Interno8 if array[j] > array[j + 1]:Comparação e Troca9 array[j], array[j + 1] = array[j + 1], array[j]10 swapped = True11 12 if not swapped:Saída Antecipada13 break14 15 return array16