Busca Simples
Percorre cada elemento de uma lista sequencialmente até encontrar o alvo. A abordagem mais intuitiva, ideal para listas pequenas ou não ordenadas.
O(n)O(1)Um guia visual e interativo sobre os algoritmos fundamentais da computação. Do O(n) ao O(n²) — entenda como cada um funciona e quando usar.
Percorre cada elemento de uma lista sequencialmente até encontrar o alvo. A abordagem mais intuitiva, ideal para listas pequenas ou não ordenadas.
O(n)O(1)Divide a lista ordenada ao meio repetidamente, eliminando metade dos elementos a cada passo. Muito mais rápido que a busca simples para grandes volumes.
O(log n)O(1)Encontra o menor elemento e o move para a posição correta, repetindo para cada posição. Simples de entender, mas lento para listas grandes.
O(n²)O(1)Escolhe um pivô e particiona os elementos em menores e maiores, ordenando recursivamente cada parte. Um dos algoritmos de ordenação mais usados na prática.
O(n log n)O(log n)Divide a lista em metades, ordena cada metade recursivamente e depois intercala os resultados. Garante O(n log n) mesmo no pior caso.
O(n log n)O(n)Compara elementos adjacentes e os troca se estiverem na ordem errada, repetindo até que a lista esteja ordenada. Os maiores elementos "borbulham" para o final.
O(n²)O(1)Constrói a lista ordenada um elemento de cada vez, inserindo cada novo elemento na posição correta. Eficiente para listas pequenas ou quase ordenadas.
O(n²)O(1)Ordena números dígito por dígito, do menos significativo ao mais significativo, usando ordenação estável em cada passagem. Alcança tempo linear para inteiros.
O(n)O(n)Conta a ocorrência de cada valor e usa essas contagens para construir a lista ordenada diretamente. Extremamente eficiente quando o intervalo de valores é limitado.
O(n)O(n)Explora um grafo camada por camada, visitando todos os vizinhos antes de avançar. Encontra o caminho mais curto em grafos não ponderados.
O(V+E)O(V+E)Explora cada ramo do grafo o mais fundo possível antes de retroceder. Fundamental para detectar ciclos e ordenação topológica.
O(V+E)O(V+E)Encontra o caminho mais curto entre dois nós em um grafo ponderado com pesos positivos. Usa uma fila de prioridade para escolher o próximo nó.
O(V+E)O(V+E)Calcula números de Fibonacci armazenando resultados já computados para evitar recálculos. Introdução clássica à programação dinâmica.
O(n)O(n)Maximiza o valor total de itens em uma mochila com capacidade limitada. Um problema clássico de otimização resolvido com tabela de subproblemas.
O(n·m)O(n·m)Encontra o número mínimo de moedas para dar troco, sempre escolhendo a maior moeda possível. Exemplo clássico de algoritmo guloso.
O(n)O(1)