Il Master Theorem (o Teorema Principale) è uno strumento potente per risolvere ricorrenze del tipo
Il Master Theorem si articola in tre casi principali, ciascuno basato su questo confronto:
-
Caso 1: Se la funzione spartiacque
cresce asintoticamente più velocemente di di almeno un fattore polinomiale, ovvero se per qualche costante , allora il costo totale è dominato dalla radice dell’albero di ricorsione. In questo caso, . - Esempio: Per la ricorrenza
: , . - La funzione spartiacque è
. - La funzione forzante è
. - Poiché
per , rientriamo nel Caso 1. - Quindi,
.
- Esempio: Per la ricorrenza
-
Caso 2: Se le due funzioni
e hanno all’incirca lo stesso tasso di crescita, ovvero se per qualche costante , allora il costo totale è distribuito uniformemente su tutti i livelli dell’albero di ricorsione. In questo caso, . - Esempio: Per la ricorrenza
: , . - La funzione spartiacque è
. - La funzione forzante è
. - Poiché
, rientriamo nel Caso 2 con . - Quindi,
.
- Esempio: Per la ricorrenza
-
Caso 3: Se la funzione forzante
cresce asintoticamente più velocemente di di almeno un fattore polinomiale, e soddisfa una condizione di regolarità ( per una costante ), allora il costo totale è dominato dalla funzione forzante stessa (cioè dalle operazioni non ricorsive). In questo caso, . - Esempio: Per la ricorrenza
: , . - La funzione spartiacque è
. - La funzione forzante è
. - Poiché
per (ad esempio, , che è meno di 1, quindi cresce più velocemente), e verificando la condizione di regolarità: . Possiamo scegliere in modo che per sufficientemente grande. - Rientriamo nel Caso 3.
- Quindi,
.
- Esempio: Per la ricorrenza