Eficiência

Um algoritmo para um determinado problema é eficiente se não perde tempo à toa, ou seja, se não gasta mais tempo que o realmente necessário. Em termos um pouco mais abrangentes, um algoritmo é eficiente se não desperdiça recursos computacionais, como tempo de execução e espaço de memória.

Em geral, estamos bem mais preocupados com o tempo que com o espaço porque é mais fácil evitar o desperdício de espaço e porque o espaço é mais barato que o tempo. Podemos dizer, então, que um algoritmo é eficiente se for tão rápido quanto poderia ser. Ou, pelo menos, se não for mais lento que outros algoritmos para o mesmo problema.

Às vezes, dados dois algoritmos para um mesmo problema, um é mais rápido que o outro para algumas instâncias do problema e mais lento para outras. Nesse caso, é difícil dizer que um é mais eficiente que o outro.