O tempo esperado é apenas o tempo médio, esperado , de execução do algoritmo usando a entrada pretendida .
Digamos que você tenha alguns milhões de registros de usuários e queira classificá-los, convém usar um algoritmo que seja mais adequado para sua entrada e, como tal, forneça o melhor tempo de execução esperado , em oposição a um algoritmo com melhor pior caso, mas pior esperado .
Às vezes, por exemplo, os fatores constantes para a complexidade de tempo de um algoritmo são tão altos que faz sentido usar algoritmos com pior complexidade de tempo, mas com fatores constantes menores, pois oferece um tempo de execução esperado melhor com pouca entrada, mesmo que isso ficar terrivelmente superado com maior contribuição.
Talvez um exemplo melhor seja o algoritmo quicksort clássico, que possui o pior tempo de execução de O (n²), mas o tempo médio de execução esperado de O (n log n), independentemente da entrada . Isso ocorre porque o algoritmo usa (ou melhor, pode usar , dependendo da implementação) randomização. Portanto, é o chamado algoritmo aleatório . Ele funciona de maneira um pouco diferente a cada chamada, mesmo com a mesma entrada. Como tal, não há entrada universal de pior caso para a implementação, porque a entrada de pior caso depende da maneira como o algoritmo escolhe o pivô para dividir a entrada especificada. E, como tal, não se pode apenas fornecer alguma entrada predefinida, causando o pior tempo de execução. Esse é geralmente o caso de algoritmos aleatórios, que visam um tempo de execução médio melhor esperado, independentemente da entrada.
É tudo sobre como usar o algoritmo certo para a entrada em questão.