Relazioni di ricorrenza e ricorsione

di il
1 risposte

Relazioni di ricorrenza e ricorsione

Questo esercizio chiede di calcolare la complessità in funzione di n dell’istruzione y=g(f(n)) con le seguenti definizioni di funzione.
Indicare le eventuali relazioni di ricorrenza e spiegare brevemente il calcolo della complessità dei cicli.
int g(int x) {
   if (x<=1) return 10;
   int b=0;
   for (int i=1; i<=x*x; i++)
      b+=i;
   return b+g(x/2)+g(x/2);
}
int f(int x) {
   if (x<=1) return 1;
   int a=0; int b=0;
   for (int i=1; i<= g(x); i++)
       a++;
   cout >> f(x-1)+a;
   return a;
}
La soluzione per g(n) dice:

1 Risposte

  • Re: Relazioni di ricorrenza e ricorsione

    Secondo me è esponenziale

    T(n) = c*n^2+2T(n/2) = c*n^2+2(c*(n/2)^2+2T(n/4))=(1+1/2)c*n^2+4T(n/4)=(1+1/2+1/4)c*n^2+8T(n/8)=(1+1/2+1/4+...)c*n^2+2^n*T(0)=2c*n^2+d*2^n
Devi accedere o registrarti per scrivere nel forum
1 risposte