Sobes.tech
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.