Algoritmos e estrutura de dados

por que geralmente investigamos o desempenho do algoritmo tendo em vista o seu pior caso?

E é só nos algoritmos que fazemos isso?
Car crash test considera o que? Para ficar em um único exemplo.

na minha cabeça seria porque o pior caso nos daria uma ideia do tempo máximo de execução daquele programa, o que eu gostaria de saber e se é só isso mesmo ou existe algo além?

Não se trata apenas do “tempo máximo”. O pior caso, em geral, significa consumo de recursos fundamentais como memória e processador. São recursos críticos. Por isso citei o exemplo dos testes de batidas de veículos. Eles determinam quão seguro é um veículo, considerando N aspectos.
A partir do momento em que analisamos um algoritmo e identificamos que ele tem um O log/N, temos a responsabilidade de rever aquele trecho e considerar hipóteses.
Entendeu?

1 curtida

Imagino que você deve estar se referindo a análise assintótica de algoritmos. A análise assintótica não é sobre “tempo de execução” e sim o quanto a quantidade de operações do algoritmo aumenta conforme o tamanho da entrada. Com isso dá pra medir a eficiência do algoritmo independente do poder de processamento da máquina em que ele executa. Geralmente é considerado o melhor caso, e o caso médio também além do pior caso. Mas a ideia é parecida com o que você falou mesmo, é pra ter ideia do pior cenário possível daquele algoritmo, mas não em questão de tempo e sim de eficiência.

1 curtida

otimo exemplo, entendi agora