Il tempo di esecuzione previsto di un algoritmo randomizzato è un concetto ben definito, proprio come il tempo di esecuzione peggiore. Se un algoritmo è randomizzato, anche il suo tempo di esecuzione è casuale, il che significa che possiamo definire il valore atteso del suo tempo di esecuzione.
Un esempio ben noto è Quicksort: se selezioniamo i perni in modo casuale, possiamo dimostrare che il suo tempo di esecuzione previsto diventa O (n log n), anche se il tempo di esecuzione peggiore rimane O (n ^ 2). Un esempio in cui la randomizzazione è molto potente è il più piccolo problema del cerchio racchiuso: esiste un semplice algoritmo il cui tempo di esecuzione nel caso peggiore è O (n ^ 3), ma in previsione, il suo tempo di esecuzione è solo O (n).
Il tempo di esecuzione medio viene generalmente utilizzato quando si parla del comportamento di un algoritmo "per la maggior parte degli input". Definiamo un modo di generare in modo casuale un input, ad esempio, riempiamo un array di numeri casuali, o consentiamo casualmente i numeri da 1 a n (quindi nessun duplicato), oppure lanciamo una moneta e otteniamo un set discendente o crescente di numeri. Il tempo di esecuzione medio di un algoritmo per quella distribuzione casuale di input è quindi il tempo di esecuzione previsto dell'algoritmo (nel qual caso l'algoritmo potrebbe non essere randomizzato, ma l'input è).
Ad esempio: ci sono problemi geometrici per i quali esistono algoritmi che sembrano funzionare bene a prima vista, fino a quando non scopri un modo molto strano di distribuire, diciamo, le linee di input. Se supponi che le linee siano distribuite casualmente, è possibile che si verifichino questi strani scenari, quindi il tuo algoritmo finisce per essere buono.
Contrasto: il tempo di esecuzione previsto riguarda le prestazioni di un algoritmo "a meno che tu non abbia sfortuna": riprovare lo stesso algoritmo sullo stesso input ma con scelte casuali diverse può portare alla sua risoluzione molto più veloce. Il tempo medio di esecuzione parla di come un algoritmo si comporta "per la maggior parte degli input" - riprovare lo stesso algoritmo sullo stesso input non ti aiuterà (tranne forse se l'algoritmo è anche randomizzato).