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.

02 / ordenação

Quick Sort.

Escolha um pivô, separe menores e maiores e resolva as partes.

/ visualização passo a passo

Separa menores e maiores ao redor de um pivô.

palco / quick-sortmotivo / Quick
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 0Quick · 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?

Separa menores e maiores ao redor de um pivô. 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 você quer bom desempenho médio em sequências na memória e não precisa preservar a ordem original de valores iguais.
melhor casoO(n log n)
caso médioO(n log n)
pior casoO(n²)

Frequentemente rápido na prática; a escolha do pivô muda o comportamento.

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 quickSort(items, low = 0, high = items.length - 1) {
if (low >= high) return items;
const pivot = items[high];
let boundary = low;
for (let i = low; i < high; i++) {
if (items[i] < pivot) {
[items[i], items[boundary]] = [items[boundary], items[i]];
boundary++;
}
}
[items[boundary], items[high]] = [items[high], items[boundary]];
quickSort(items, low, boundary - 1);
quickSort(items, boundary + 1, high);
return items;
}
/ mesma entrada · duas leituras

Comparação
lado a lado.

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

Onde esta estratégia
encaixa?

Use quando você quer bom desempenho médio em sequências na memória e não precisa preservar a ordem original de valores iguais. 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