Junior — Middle
Pode listar as principais categorias de dificuldade dos algoritmos e seus critérios?
sobes.tech IA
Resposta da IA
As principais categorias de complexidade de algoritmos descrevem como o tempo de execução ou o uso de memória aumentam com o aumento do tamanho dos dados de entrada (n). Aqui estão as classes principais:
- O(1) — complexidade constante: o tempo não depende do tamanho dos dados.
- O(log n) — logarítmica: o tempo cresce proporcionalmente ao logaritmo de n (por exemplo, busca binária).
- O(n) — linear: o tempo é proporcional ao tamanho da entrada.
- O(n log n) — linear-logarítmica: frequentemente encontrada em algoritmos de ordenação eficientes (por exemplo, ordenação rápida).
- O(n²) — quadrática: o tempo cresce proporcional ao quadrado do tamanho da entrada (por exemplo, ordenação por bolha).
- O(2^n) — exponencial: o tempo dobra a cada aumento de n (por exemplo, enumeração de todos os subconjuntos).
- O(n!) — fatorial: uma complexidade que cresce muito rapidamente (por exemplo, enumeração de todas as permutações).
Critérios de avaliação:
- Como o tempo/a memória mudam com o aumento dos dados de entrada.
- Casos pior, médio e melhor.
Compreender essas categorias ajuda a escolher algoritmos eficientes para tarefas.