Ma se ho un risultato diverso vuol dire che va calcolato in un'altro modo..Originariamente inviato da ramy89
Niente, era R(n) = cn^4+R(n/2) se il for era scritto così:
codice:for(int i=0;i<= x*x*x*x;i++) a+=i;![]()
Ci sono quasi pienamento nel tuo ragionamentoEsempio:
Allora assegnando un costo costante al corpo del for che chiamo c, distingui due casi:codice:int f(int x) { if(x==0) return 1; else { int sum=0; for(int i=0;i<x;i++) sum+=i; return sum+f(x/2); } }
T(f(x))=1 se x=0
T(f(x))=xc+T(x/2) se x>1
E dalla relazione di ricorrenza sei in grado di calcolarti la complessità.![]()
Potresti esternare il tuo ragionamento magari mi é piu chiaro come ragionarci..