Algoritmos de Busca e Ordenação
O que é um Algoritmo?
Um algoritmo é uma sequência finita e inequívoca de instruções passo-a-passo projetada para resolver um determinado problema computacional.
⚡ Simulador Visual de Algoritmos (Busca e Ordenação)
Experimente em tempo real como a CPU manipula células na memória RAM para ordenar ou localizar valores:
Simulador Visual de Algoritmos (Busca e Ordenação)
Complexidade de Tempo e Notação Big-O
A Notação Big-O () descreve como o tempo de execução de um algoritmo cresce à medida que o tamanho dos dados de entrada () aumenta.
| Algoritmo | Melhor Caso | Caso Médio | Pior Caso | Espaço Auxiliar |
|---|---|---|---|---|
| Busca Linear | ||||
| Busca Binária | ||||
| Bubble Sort | ||||
| Merge Sort |
1. Busca Linear vs Busca Binária
Busca Linear ()
Percorre a lista elemento por elemento a partir do início. Funciona em listas não ordenadas, mas torna-se lenta para grandes volumes de dados.
Busca Binária ()
Exige que a lista esteja previamente ordenada. O algoritmo divide a lista ao meio repetidamente:
- Compara o elemento do meio com o valor procurado.
- Se for menor, descarta a metade esquerda. Se for maior, descarta a direita.
Para encontrar um item entre 1.000.000 de elementos:
- Busca Linear: até 1.000.000 de comparações.
- Busca Binária: no máximo 20 comparações! (2²⁰ ≈ 1.000.000)
2. Algoritmos de Ordenação
Bubble Sort ()
Compara elementos adjacentes e os troca de lugar (swap) se estiverem na ordem errada. Os maiores valores "flutuam" para o final da lista a cada passada.
Merge Sort ()
Utiliza a estratégia de Divisão e Conquista:
- Divide a lista recursivamente em sub-listas de 1 elemento.
- Intercala (merge) as sub-listas de forma ordenada.