El tiempo de ejecución esperado de un algoritmo aleatorio es un concepto bien definido, al igual que el peor tiempo de ejecución. Si un algoritmo es aleatorio, su tiempo de ejecución también es aleatorio, lo que significa que podemos definir el valor esperado de su tiempo de ejecución.
Un ejemplo bien conocido es Quicksort: si seleccionamos los pivotes al azar, podemos demostrar que su tiempo de ejecución esperado se convierte en O (n log n), a pesar de que su peor tiempo de ejecución sigue siendo O (n ^ 2). Un ejemplo en el que la aleatorización es muy poderosa es el problema más pequeño del círculo cerrado: hay un algoritmo simple cuyo peor tiempo de ejecución es O (n ^ 3), pero en expectativa, su tiempo de ejecución es solo O (n).
El tiempo de ejecución promedio generalmente se usa cuando se habla del comportamiento de un algoritmo 'para la mayoría de las entradas'. Definimos alguna forma de generar aleatoriamente una entrada, por ejemplo, llenamos una matriz con números aleatorios, o permutamos aleatoriamente los números del 1 al n (por lo que no hay duplicados), o lanzamos una moneda y obtenemos un conjunto descendente o ascendente de números. El tiempo de ejecución promedio de un algoritmo para esa distribución aleatoria de entradas es entonces el tiempo de ejecución esperado del algoritmo (en cuyo caso el algoritmo puede no ser aleatorio, pero la entrada sí lo es).
Como ejemplo: hay problemas geométricos para los cuales existen algoritmos que parecen funcionar bien a primera vista, hasta que descubres una forma muy extraña de distribuir, por ejemplo, las líneas de entrada. Si asume que las líneas están distribuidas al azar, entonces puede ser que estos escenarios extraños sean extremadamente improbables, por lo que su algoritmo termina siendo bueno.
Contraste: el tiempo de ejecución esperado se trata de cómo funciona un algoritmo 'a menos que tenga mala suerte': volver a intentar el mismo algoritmo en la misma entrada pero con diferentes opciones aleatorias puede hacer que se resuelva mucho más rápido. El tiempo de ejecución promedio habla sobre qué tan bien se desempeña un algoritmo 'para la mayoría de las entradas'; probar el mismo algoritmo nuevamente en la misma entrada no lo ayudará (excepto quizás si el algoritmo también es aleatorio).