Costo algoritmo ricorsivo

Messaggioda #Fede » 22/05/2019, 10:48

Buongiorno, qualcuno mi sa aiutare con il seguente esercizio?
Determinare l'ordine di grandezza del costo in tempo in termini di operazioni aritmetiche della seguente funzione:
Codice:
int pippo(int n){
int i;
if (n <= 3)
   return 1;
else
 if(n > 333)
 i = n/2;
 return 3*pippo(i)+pippo(i)+pippo(i)+n*i;
 }
else
 return pippo(n-3)+9;
}


dire che l'algoritmo ha tempo d'esecuzione definito da
$ T(n)={ ( O(1)\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad n<= 3 ) ,( 3T(n/2)+O(1)\quad\quad n>= 333 ),( T(n-3)+O(1)\quad ):} $
è corretto?

Grazie mile!
#Fede
Starting Member
Starting Member
 
Messaggio: 14 di 44
Iscritto il: 20/04/2017, 15:33

Re: Costo algoritmo ricorsivo

Messaggioda apatriarca » 06/06/2019, 21:20

La condizione \(n \ge 333\) dovrebbe essere \(n > 333\) in base al codice della funzione, ma mi sembra per il resto corretto.

EDIT: Suppongo sia tuttavia in qualche modo richiesto di risolvere tale equazione di ricorrenza. Qualche idea su come procedere?
apatriarca
Moderatore
Moderatore
 
Messaggio: 5226 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: Costo algoritmo ricorsivo

Messaggioda #Fede » 16/06/2019, 18:25

Grazie mille, a questo punto risolverei l'equazione di ricorrenza con il teorema dell'esperto!
#Fede
Starting Member
Starting Member
 
Messaggio: 15 di 44
Iscritto il: 20/04/2017, 15:33


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite