Visualizador de Algoritmos grátis
Veja algoritmos de ordenação, busca em caminho e clássicos ganhar vida — Bubble Sort/Quicksort/Merge Sort, Dijkstra/A*/BFS em uma grade de labirinto interativa, além de busca binária, Crivo, N-Rainhas e Jogo da Vida. Animação passo a passo, pseudocódigo sincronizado, métricas ao vivo e modo de corrida lado a lado. Amigável para dispositivos móveis e 100% no seu navegador.
Como funciona
Cada algoritmo é escrito como um gerador que produz um "passo" de visualização de cada vez — um instantâneo do array mais quais elementos foram comparados, trocados ou escritos. Um único reprodutor pré-calcula a lista completa de passos, para que reproduzir, pausar, avançar passo, recuar passo e o modo de corrida lado a lado sejam tudo apenas indexação nessa lista. Nada é enviado para qualquer lugar — tudo funciona no seu navegador.
- 1Escolha um algoritmo e um conjunto de dadosEscolha entre bubble, selection, insertion, merge, quick, heap, shell, cocktail, counting e radix sort (mais bogosort, por diversão). Gere um array aleatório, quase ordenado, invertido ou com poucos valores únicos, ou escreva os seus próprios números separados por vírgulas.
- 2Observe-o funcionar — e leia ao mesmo tempoAs barras são coloridas pelo que está acontecendo (comparando, trocando, pivô, ordenado). O painel de pseudocódigo destaca a linha exata sendo executada, e contadores ao vivo acompanham comparações, trocas, escritas e acessos ao array em tempo real.
- 3Controle o tempoAjuste a velocidade, arraste a linha do tempo, ou avance uma única operação para frente e para trás para estudar exatamente como o algoritmo toma as suas decisões. O recuo é exato porque cada passo é um instantâneo armazenado, não uma reexecução.
- 4Corra-os frente a frenteO modo corrida executa dois ou mais algoritmos sobre a mesma entrada de uma vez, lado a lado, com uma tabela de métricas para poder ver, por exemplo, porque é que o quicksort vence o bubble sort.
Funciona inteiramente no seu navegador — nenhum dado sai do seu dispositivo. Não há servidor, envio, nem conta. É uma ferramenta de ensino: os algoritmos são implementações de manual escolhidas pela clareza da visualização.
Guia
Exemplo prático
Abra a aba Sorting. Em “Custom numbers or words”, digite 5, 3, 8, 1 e clique em “Aplicar”. Aparece “Size: 4” e quatro barras com rótulos substituem as 40 aleatórias. “Bubble Sort” está selecionado e a “Linha do tempo” mostra 1/14. Clique em “Reproduzir”. Quando a execução termina, a linha do tempo mostra 14/14, as barras mostram 1, 3, 5, 8 na cor “Sorted” e os contadores mostram Comparisons 6, Swaps 4, Writes 8 e Accesses 12. Agora clique em “Selection Sort” com os mesmos dados. São 18 passos, com Comparisons 6 mas só Swaps 2, porque o selection sort troca no máximo uma vez por passada. Digite banana, apple, cherry e clique em “Aplicar” para ordenar palavras. “Compartilhar esta execução” copia um link que reabre este algoritmo, estes dados e o passo em que você está. “Save image (PNG)” salva o quadro atual, por exemplo como bubble-sort-step-14.png.
Quais configurações usar e os limites
- Escolha um algoritmo e depois uma forma inicial. A aba Sorting tem Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quicksort, Heapsort, Shell Sort, Cocktail Shaker, Counting Sort e Radix Sort (LSD). “Add Bogosort (for fun)” acrescenta um décimo primeiro. Os botões de forma são “Random”, “Nearly sorted”, “Reversed” e “Few unique”. O controle deslizante “Tamanho” vai de 2 a 120 e começa em 40 no computador ou 15 no celular, e “Embaralhar” cria novos dados. Trocar o algoritmo mantém os mesmos dados, para que você compare as execuções de forma justa.
- Aprenda os controles de reprodução. Use “Reproduzir”/“Pausar”, “Step back”, “Step forward” e “Reiniciar”, ou arraste a “Linha do tempo” até qualquer passo. “Velocidade” é medida em passos por segundo, de 1 a 240, e começa em 30 no computador ou 20 no celular. Como a execução inteira é calculada antes, voltar passos é exato. Os atalhos são Espaço, setas para a esquerda e para a direita, R, e [ e ] para a velocidade; eles são ignorados enquanto o foco está em um botão, controle deslizante ou caixa de texto. A primeira execução começa sozinha uma vez, e a reprodução pausa quando você troca de aba.
- Digite seus próprios números ou palavras. “Custom numbers or words” exige pelo menos dois itens, separados por vírgulas ou espaços. Os números são arredondados para inteiros. Se algum item não for um número, todos os itens são tratados como palavras e ordenados alfabeticamente. Só os primeiros 120 itens são usados, e os rótulos aparecem nas barras quando há 30 ou menos. O Counting Sort cria uma posição para cada valor entre o menor e o maior; por isso, uma lista como 1, 50000000 pede 50 milhões de posições. Mantenha os números desse algoritmo em um intervalo pequeno.
- Leia os contadores além da animação. O painel mostra Comparisons, Swaps, Writes, Accesses, Step e Compute time, contados até o passo em que você está. Counting Sort e Radix Sort não fazem comparações, então essa caixa fica oculta para eles. “Compute time” é o tempo que este navegador levou para calcular os passos, não um teste de velocidade do algoritmo. “Measure growth”, em “How the work grows with size”, executa todos os algoritmos de ordenação, exceto o Bogosort, em listas aleatórias de 10, 25, 50, 100, 250 e 500 itens, e “Download results as CSV” salva sorting-growth.csv.
- Faça os algoritmos competirem e compartilhe o que descobrir. “Modo de corrida” permite escolher de 2 a 4 algoritmos para rodar nos mesmos dados, no mesmo ritmo de passos. O que tiver menos passos no total termina primeiro e recebe o troféu, e “Voltar para visualização única” traz você de volta. Passos não são segundos; por isso, isso mostra quanto trabalho cada método faz, e não a rapidez com que ele roda no seu computador. O Bogosort não pode participar da corrida. Fora do modo de corrida, “Compartilhar esta execução” copia um link que abre no mesmo passo, em pausa.
- Troque de aba para ver busca de caminho e os algoritmos clássicos. “Pathfinding” tem Breadth-First Search, Dijkstra, A* Search, Greedy Best-First, Bidirectional BFS e Depth-First Search em uma grade de 16 linhas por 30 colunas, ou 18 por 13 no celular. Arraste para desenhar paredes e arraste o início verde ou o destino vermelho. No modo “Pesos”, uma célula custa 5; só o Dijkstra e o A* usam pesos. “Classic” tem Binary Search, Linear Search, Sieve of Eratosthenes (n de 20 a 120), N-Queens (N de 4 a 10), Game of Life e Fisher–Yates Shuffle (tamanho de 8 a 60).
Problemas comuns e como resolvê-los
- Aparece “Enter at least two numbers or words, separated by commas.”
- A caixa personalizada encontrou menos de dois itens. Um único número, uma caixa vazia ou apenas vírgulas e espaços disparam o aviso, e a caixa recebe um contorno vermelho. Adicione um segundo item e clique em “Aplicar” ou pressione Enter. Espaços também funcionam como separadores, embora a mensagem cite vírgulas. Um texto como 5 3 x não é um erro: ele é lido como três palavras.
- Aparece “Bogosort is factorial-time, so it's capped at 7 elements — anything larger could run effectively forever.”
- Você adicionou o Bogosort com “Add Bogosort (for fun)” e o selecionou. Ele embaralha ao acaso até a lista ficar ordenada por acaso; por isso o controle deslizante “Tamanho” para em 7, os dados são reduzidos a 7 se eram maiores, e uma lista personalizada é cortada nos primeiros 7 itens. Escolha outro algoritmo para voltar a tamanhos de até 120.
- Aparece “No path — the goal is walled off.”
- Isso aparece na aba Pathfinding quando a execução termina sem chegar ao destino, porque paredes cercam o destino ou o início. “Paredes aleatórias” pode causar isso por acaso. Arraste o destino ou o início para uma célula livre, ou clique em “Limpar paredes”, que também remove os pesos. “Limpar caminho” apenas volta a execução ao primeiro passo e mantém suas paredes.
- O botão “Compartilhar esta execução” muda para “Copy failed”.
- O navegador bloqueou a área de transferência, o que pode acontecer em um quadro incorporado ou sem permissão. Normalmente o link também é colocado na barra de endereços, então você pode copiá-lo de lá. O link cobre apenas a aba Sorting e contém o algoritmo, até 120 itens e o número do passo. Execuções de Pathfinding e Classic não podem ser compartilhadas assim.
- A animação não começa ou para sozinha.
- A primeira execução começa sozinha apenas uma vez, e não começa se o seu dispositivo pede movimento reduzido; por isso, clique em “Reproduzir”. A reprodução também pausa quando a aba fica oculta e para no último passo; clicar em “Reproduzir” ali recomeça do primeiro passo. Os atalhos de teclado não fazem nada enquanto um botão, controle deslizante ou caixa de texto está em foco, então clique antes em uma parte vazia da página.
Como se compara
Use esta ferramenta para ver por que um algoritmo se comporta como se comporta: você pode avançar e voltar passos, acompanhar a linha do pseudocódigo e comparar contagens em dados idênticos. Ela não é um benchmark. As contagens vêm das versões passo a passo de cada algoritmo feitas por esta ferramenta, não da ordenação da sua linguagem de programação, e Compute time mede apenas quanto tempo o navegador levou para preparar os passos. Ela tem 10 algoritmos de ordenação (11 com o Bogosort), 6 de busca de caminho e 6 clássicos, mas você não pode colar seu próprio código, carregar um mapa real nem ordenar mais de 120 itens. Tudo roda no seu navegador e nada é enviado a lugar nenhum.
Ferramentas relacionadas
Diff de CSV
Compare dois arquivos CSV por uma coluna-chave e veja exatamente quais linhas foram adicionadas, removidas ou alteradas — com os campos específicos que diferem mostrados do antigo para o novo. Lida com campos entre aspas; executa inteiramente no seu navegador.
Cronômetro on-line
Cronômetro de precisão com registro de volta, destaque de volta mais rápida/mais lenta e atalhos de teclado. Conta desde zero com precisão de milissegundos.
Gerador de Easing CSS Cubic-Bezier
Projete curvas de easing CSS arrastando pontos de controle, visualize o movimento ao vivo e copie o valor cubic-bezier(). Inclui predefinições de ultrapassagem e quique.