LogRitmo navegador / ativofase / 01LR / fase 01 · ativa
01 / sorting

Bubble Sort.

O algoritmo mais simples para enxergar uma comparação acontecendo.

/ visualização passo a passo

Empurra o maior item para o fim a cada passagem.

palco / Bubblemotivo / Bubble
000 comparações000 trocas0% progresso pronto
telemetria / passo ao vivo
passo atual00input carregado — pronto para executar
etapa de código01destaque sincronizado por linguagem
entrada16elementos em memória
estadoreadycontrole manual
playback observado · ordenação

Duração que aconteceu.

Execuções concluídas nesta bancada, medidas durante o playback ativo no navegador e salvas apenas neste dispositivo.

média / últimas 0—Bubble · armazenamento local
sem registros ainda

Execute o algoritmo até o fim para transformar esta bancada em uma série de medições reais.

/ leitura em três sinais

O que a bancada revela?

Empurra o maior item para o fim a cada passagem. Cada barra representa um item; a cor quente marca a comparação atual e o verde calmo indica que uma posição já não precisa ser revisitada.

quando usarUse para aulas, protótipos e inputs muito pequenos em que a clareza vale mais que a velocidade.
complexidade
melhor casoO(n)
caso médioO(n²)
pior casoO(n²)

O melhor caso depende da detecção de uma passagem sem trocas. Bom para ensinar; raramente é a escolha de produção.

Como ler esta réguaEla não mede o tempo do seu aparelho: compara como o número de operações tende a crescer quando n, a quantidade de itens, aumenta.
operações
quantidade de itens (n)O(n)O(log n)O(n log n)O(n²)
O(n²) · Crescimento quadrático

Há comparações entre pares de itens ou varreduras repetidas. Por isso, cada aumento de entrada multiplica mais rapidamente o trabalho necessário.

Se a entrada dobra, o número de comparações pode ficar perto de quatro vezes maior.
comparação / duas técnicas

Compare o crescimento lado a lado

Escolha duas técnicas diferentes. As curvas usam a mesma escala visual para explicar como o custo tende a aumentar.

Comparações prontasaplique um par didático
quantidade de itens (n)operações

Use este par para observar por que O(n²) acumula trabalho mais depressa que O(n log n) quando a lista cresce. Merge Sort tende a crescer mais devagar do que Bubble Sort quando aumentam quantidade de itens (n). Isso descreve tendência assintótica, não mede o tempo do seu aparelho.

/ leitura técnica do algoritmo

O que cada troca
prova?

Na bancada, cada troca adjacente corrige uma desordem local. O ponto importante não é imaginar valores “flutuando”, mas acompanhar como uma regra local constrói uma garantia global: ao fim de cada passagem, mais uma posição do sufixo já está definitivamente ordenada.

01 / INVARIANTE

O final deixa de ser hipótese.

Antes de cada nova passagem, as posições já marcadas à direita contêm os maiores valores da entrada em ordem não decrescente. Como o maior valor ainda ativo avança para a direita durante a passagem, o sufixo ordenado cresce uma posição por vez.

02 / TÉRMINO

Duas saídas, a mesma conclusão.

A fronteira direita diminui quando houve troca. Se uma passagem inteira não troca nenhum par, a região ativa já está ordenada e o algoritmo encerra. Portanto, ele sempre termina: por redução da região ativa ou por parada antecipada.

03 / INVERSÕES

Trocas têm uma medida exata.

Uma inversão é um par fora de ordem. Cada troca adjacente do Bubble Sort remove exatamente uma inversão; por isso, o total de trocas coincide com o número de inversões da entrada. A telemetria torna essa relação observável.

/ custo e propriedades

Otimização local não muda a classe de crescimento.

A flag moved melhora o melhor caso para Θ(n) quando a entrada já está ordenada. Ainda assim, os casos médio e pior permanecem Θ(n²): uma sequência quase ordenada pode continuar exigindo muitas passagens se a desordem estiver espalhada.

MEMÓRIA AUXILIARΘ(1)Reorganiza a própria sequência.
ESTABILIDADESIMSomente se trocar quando esquerda > direita.
MELHOR CASOΘ(n)Com parada antecipada e entrada ordenada.
PIOR CASOΘ(n²)A versão reversa maximiza as inversões.
DECISÃO DE ENGENHARIA

Estude a mecânica; não a confunda com uma escolha padrão de produção.

O Bubble Sort é especialmente útil para estudar comparações adjacentes, estabilidade, invariantes e análise de laços aninhados. Para ordenação geral em coleções maiores, a comparação com Merge Sort nesta página evidencia por que uma estratégia Θ(n log n) escala de modo mais favorável. As variantes de parada antecipada e fronteira da última troca podem poupar trabalho, mas não eliminam o pior caso quadrático.

/ por baixo do palco

Pseudocódigo e
implementação.

destaque sincronizado por linguagem
etapa / 00

input carregado — pronto para executar

O destaque acompanha o mesmo passo que você vê nas barras. Execute em câmera lenta para conectar intenção e efeito.

linha atual comentário de estado
function bubbleSort(items) { // Compare adjacent items on each pass
for (let end = items.length - 1; end > 0; end--) {
let moved = false;
for (let i = 0; i < end; i++) {
if (items[i] > items[i + 1]) {
[items[i], items[i + 1]] = [items[i + 1], items[i]];
moved = true;
}
}
if (!moved) break;
}
return items;
}
/ mesma entrada · duas leituras

Comparação
lado a lado.

A / Bubble pronto
0comparações0 trocas
B / Quick pronto
0comparações0 trocas
03 prática
/ decisão de engenharia

Onde esta estratégia
encaixa?

Use para aulas, protótipos e inputs muito pequenos em que a clareza vale mais que a velocidade. A melhor forma de internalizar essa escolha é comparar o mesmo cenário com outras estratégias e observar como as métricas se comportam.

testar no modo corrida