Merge Sort.
Divida em partes pequenas; reconstrua em uma ordem previsível.
Mescla duas sequências já ordenadas em uma só.
Duração que aconteceu.
Execuções concluídas nesta bancada, medidas durante o playback ativo no navegador e salvas apenas neste dispositivo.
Execute o algoritmo até o fim para transformar esta bancada em uma série de medições reais.
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.
Mantém desempenho consistente, ao custo de memória auxiliar; a combinação usa índices para evitar remoções lineares.
Pseudocódigo e
implementação.
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.
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));}Comparação
lado a lado.
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 