Este visualizador de algoritmos de ordenação anima os seis métodos mais ensinados em cursos de computação. As barras mudam de cor a cada comparação e troca, e a tabela abaixo da animação mostra quantas operações cada algoritmo faria para ordenar exatamente o mesmo vetor.
Comparação dos Algoritmos de Ordenação
| Algoritmo | Melhor | Médio | Pior | Memória | Estável |
|---|---|---|---|---|---|
| Bubble Sort | O(n) | O(n²) | O(n²) | O(1) | Sim |
| Selection Sort | O(n²) | O(n²) | O(n²) | O(1) | Não |
| Insertion Sort | O(n) | O(n²) | O(n²) | O(1) | Sim |
| Merge Sort | O(n log n) | O(n log n) | O(n log n) | O(n) | Sim |
| Quick Sort | O(n log n) | O(n log n) | O(n²) | O(log n) | Não |
| Heap Sort | O(n log n) | O(n log n) | O(n log n) | O(1) | Não |
Os Seis Métodos em Uma Frase
- Bubble Sort: O Bubble Sort, ou ordenação por bolha, percorre o vetor várias vezes comparando pares de elementos vizinhos e trocando os que estão fora de ordem.
- Selection Sort: O Selection Sort, ou ordenação por seleção, procura o menor elemento da parte não ordenada e o coloca na primeira posição livre.
- Insertion Sort: O Insertion Sort, ou ordenação por inserção, funciona como organizar cartas na mão: pega o próximo elemento e o desliza para a esquerda até encontrar o lugar certo dentro da parte já ordenada..
- Merge Sort: O Merge Sort usa a estratégia de dividir para conquistar: divide o vetor ao meio repetidamente até sobrarem pedaços de um elemento e depois intercala (merge) esses pedaços em ordem, de dois em dois, até reconstruir o vetor inteiro ordenado..
- Quick Sort: O Quick Sort escolhe um elemento chamado pivô e reorganiza o vetor de modo que os menores fiquem à esquerda dele e os maiores à direita.
- Heap Sort: O Heap Sort organiza o vetor como um max-heap, uma árvore binária em que cada pai é maior que seus filhos, guardada no próprio vetor.
Teste os Casos Especiais
Use a opção “Vetor inicial” para ver como cada algoritmo reage a entradas diferentes. Com o vetor já ordenado, o Insertion Sort e o Bubble Sort terminam quase na hora, enquanto o Quick Sort com pivô no fim cai no pior caso. Com o vetor invertido, o Insertion Sort faz o máximo de trocas possível. Merge Sort e Heap Sort mantêm o mesmo ritmo em qualquer caso.
Perguntas Frequentes
Qual é o algoritmo de ordenação mais rápido?
Para uso geral em memória, o Quick Sort costuma ser o mais rápido na prática. Linguagens modernas usam híbridos: Python e Java (para objetos) usam Timsort, que mistura Merge Sort e Insertion Sort; C++ usa Introsort, que mistura Quick, Heap e Insertion Sort.
O que significa um algoritmo de ordenação ser estável?
Que elementos com a mesma chave mantêm a ordem original. Isso importa ao ordenar por mais de um critério: se você ordena uma lista de alunos por nome e depois, com um algoritmo estável, por nota, alunos com a mesma nota continuam em ordem alfabética.
Por que não existe ordenação por comparação mais rápida que O(n log n)?
Porque existem n! ordens possíveis para n elementos, e cada comparação só tem dois resultados. São necessárias pelo menos log₂(n!) comparações para distinguir todas, e log₂(n!) cresce como n log n. Algoritmos como Counting Sort e Radix Sort escapam desse limite porque não comparam elementos.
