O que caracteriza um bom algoritmo?

Passo 1

O enunciado pergunta quais são as características que fazem um algoritmo ser considerado bom — ou seja, estamos no âmbito de teoria da computação/estrutura de dados e precisamos conhecer quais critérios definem a qualidade de um algoritmo.

Passo 2

Primeiro, vale lembrar o que é um algoritmo: é uma sequência finita e bem-definida de instruções que transforma entradas (inputs) em saídas (outputs) de forma determinística.
Todo algoritmo, para ser válido, deve obedecer a quatro propriedades básicas: definitude (cada passo é claro e não ambíguo), finitude (termina em um número finito de passos), entrada e saída (recebe dados e produz resultados) e efetividade (operações realizáveis em tempo finito e com recursos limitados).

Passo 3

Além dessas, um bom algoritmo deve prezar pela corretude (sempre resolve o problema proposto de acordo com sua especificação), pela verificabilidade (facilidade de testar se de fato funciona) e pela legibilidade/manutenibilidade (código claro, modular e bem documentado).
Para tornar um algoritmo realmente “bom” na prática, também precisamos considerar eficiência: ou seja, complexidade de tempo (quantos passos em função do tamanho da entrada) e complexidade de espaço (quanta memória é consumida). Algoritmos com menor ordem de crescimento são preferíveis.

Resposta

Um bom algoritmo é aquele que: (1) é definido e não ambíguo, (2) termina em um número finito de passos, (3) aceita entradas e gera saídas corretas, (4) utiliza operações efetivas, (5) é correto e verificável, (6) é claro e modular, e (7) é eficiente em tempo e espaço.

Exercícios relacionados