Il tempo di esecuzione previsto di un algoritmo randomizzato è un concetto ben definito, proprio come il tempo di esecuzione del caso peggiore. Se un algoritmo è randomizzato, il suo tempo di esecuzione è anche casuale, il che significa che possiamo definire il valore atteso del suo tempo di esecuzione.
Un esempio ben noto è Quicksort: se selezioniamo i pivot in modo casuale, possiamo dimostrare che il tempo di esecuzione previsto diventa O (n log n), anche se il suo peggior tempo di esecuzione resta O (n ^ 2). Un esempio in cui la randomizzazione è molto potente è il più piccolo problema di circoscrizione: esiste un algoritmo semplice il cui caso peggiore è O (n ^ 3), ma in attesa, il suo tempo di esecuzione è solo O (n).
Il tempo medio di esecuzione viene solitamente utilizzato quando si parla del comportamento di un algoritmo "per la maggior parte degli input". Definiamo un modo per generare un input a caso, per esempio riempiamo un array con numeri casuali, oppure permutiamo casualmente i numeri da 1 a n (quindi non duplicati), o lanciamo una moneta e otteniamo un set discendente o ascendente 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 cui esistono algoritmi che sembrano funzionare bene a prima vista, finché non si scopre un modo molto strano di distribuire, ad esempio, le linee di input. Se si assume che le linee siano distribuite casualmente, è possibile che questi strani scenari siano estremamente improbabili, quindi il tuo algoritmo si rivela buono.
Contrasto: il tempo di esecuzione previsto riguarda il modo in cui un algoritmo esegue "a meno che tu non abbia sfortuna": riprovare lo stesso algoritmo sullo stesso input ma con scelte casuali diverse può portare a risolverlo molto più velocemente. Il tempo medio di esecuzione parla di quanto bene un algoritmo esegue "per la maggior parte degli input": provare lo stesso algoritmo sullo stesso input non ti aiuterà (eccetto forse se l'algoritmo è anche randomizzato).