Ricorrenze
Attraverso i metodi delle ricorrenze è possibile risolvere la ricorsione nelle complessità degli algoritmi.
Metodo dell'iterazione
La procedura consiste nell'esplodere la ricorsione fino a trovare un pattern, come:
che viene esploso fino ad arrivare al caso base, quando l'argomento è , cioè: quindi dopo essere stato esploso fino al caso base con , si ottiene:
Per esempio, se per la serie geometrica, fino al caso base in cui:
Metodo della sostituzione
In questo caso si indovina la complessità e si dimostra per induzione, come per: si dimostra che , cioè che: per il caso base ipotizzando sia allora , quindi: dove perchè il caso base ha provato la proprietà fino a e , mentre perchè l'intero prima è sempre più piccolo. Va quindi dimostrato che : che è valido perchè dal caso base.
Teorema Master
Se consideriamo un algoritmo come la suddivisione in sottoproblemi, si ha: dove è il tempo della suddivisione in sottoproblemi grandi . Quindi:
Allora dato un , si ha:
-
Caso 1
per cui la complessità è dominata dalla parte ricorsiva .
Per esempio, se allora , e per cui: e se per esempio allora quindi .
-
Caso 2
allora la complessità della parte di suddivisione e ricorsiva si equivalgono.
Per esempio, se allora , e per cui: e che corrisponde al caso 2, di conseguenza .
-
Caso 3
per cui, se ci vuole più tempo per dividere il padre in figli che per dividere tutti gli figli (per la condizione ausiliaria), allora la complessità è dominata dalla parte di suddivisione .
Per esempio, se allora , e per cui: e se per esempio allora e va trovata per cui:
che è valido perchè dalla condizione, quindi .
Dimostrazione
Esplodendo il tempo si trova che, e.g. con :
ovvero che al livello ci sono nodi e i sottoproblemi sono grandi , per cui: dove è il tempo per finire le chiamate al livello , e all'ultimo livello : da cui si può ricavare il numero di foglie: da cui deriva la del teorema, e con cui si può trovare il numero di nodi:
-
Caso 1
Per ipotesi , quindi va dimostrato che : con cui si può trovare che: e anche è verificato perchè è il numero di foglie che verranno sicuramente visitate.
-
Caso 2
Per ipotesi , quindi va dimostrato che : da cui si trova che:
-
Caso 3
Per ipotesi e cioè, che per ogni livello : e va quindi dimostrato che , per cui: e quindi dato che . Inoltre perchè si sa che: