LogRitmo client-side / livephase / 01LR / 01 active
vocabulário
registro local

Vocabulário revisado.

sem envio externo

Os termos entram aqui quando você abre uma explicação. O registro fica somente neste navegador, em armazenamento local.

nenhum termo consultado

Abra um tooltip do modo iniciante para começar seu vocabulário.

03 / ordenação

Merge Sort.

Divida em partes pequenas; reconstrua em uma ordem previsível.

/ visualização passo a passo

Mescla duas sequências já ordenadas em uma só.

palco / merge-sortmotivo / Merge
000 000 0% 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 0Merge · 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?

Mescla duas sequências já ordenadas em uma só. Cada barra representa um item; a cor quente marca a atual e o verde calmo indica que uma posição já não precisa ser revisitada.

quando usarUse quando estabilidade e previsibilidade importam, como em grandes coleções ou dados que chegam em blocos.
melhor casoO(n log n)
caso médioO(n log n)
pior casoO(n log n)

Mantém desempenho consistente, ao custo de memória auxiliar; a combinação usa índices para evitar remoções lineares.

custo
tamanho do inputO(n²)O(n log n)O(n)
/ 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 mergeSort(items) {
if (items.length <= 1) return items;
const middle = Math.floor(items.length / 2);
const left = mergeSort(items.slice(0, middle));
const right = mergeSort(items.slice(middle));
return merge(left, right);
}
function merge(left, right) {
const result = [];
let leftIndex = 0, rightIndex = 0;
while (leftIndex < left.length && rightIndex < right.length) {
result.push(left[leftIndex] <= right[rightIndex] ? left[leftIndex++] : right[rightIndex++]);
}
return result.concat(left.slice(leftIndex), right.slice(rightIndex));
}
/ mesma entrada · duas leituras

Comparação
lado a lado.

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

Onde esta estratégia
encaixa?

Use quando estabilidade e previsibilidade importam, como em grandes coleções ou dados que chegam em blocos. 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