|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Jul 2010
Messaggi: 6
|
[Java] aiuto complessità
debbo calcolare la complessità asintotica nel caso peggiore del seguente metodo,potreste aiutarmi?
Codice:
public static int esercizio(int n){
int c=0;
int a=n;
while(a>0){
int b=a;
while(b>0){
c+=b;
b--;
}
a=a/2;
}
return c;
}
Ultima modifica di Pete9 : 08-07-2010 alle 17:09. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 314
|
Il ciclo interno viene eseguito n volte, quello più esterno n/2 volte
__________________
Athlon64 x2 5600 - AsRock ALiveNF5eSata2+ - kingston 2GB ddr2 800 - GeForce 8800gts 320MB |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Jul 2010
Messaggi: 6
|
Il ciclo esterno non viene eseguito log(n) volte?
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
|
|
|
|
|
|
#6 |
|
Junior Member
Iscritto dal: Jul 2010
Messaggi: 6
|
cioè? con la notazione O grande come sarebbe??
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 314
|
Errore mio.
Si è sublineare
__________________
Athlon64 x2 5600 - AsRock ALiveNF5eSata2+ - kingston 2GB ddr2 800 - GeForce 8800gts 320MB |
|
|
|
|
|
#8 |
|
Junior Member
Iscritto dal: Jul 2010
Messaggi: 6
|
Cosa intendete per sub lineare? Me lo potreste spiegare?
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
|
|
|
|
|
|
#10 |
|
Junior Member
Iscritto dal: Jul 2010
Messaggi: 6
|
ok, fin lì ci sono. Ma il secondo while quante volte viene eseguito? La risposta all'esercizio qual è?
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2787
|
Il while interno viene eseguito la prima volta n volte, la seconda n/2, la terza n/4 e così via. In totale quasi 2n volte. Quindi la complessità secondo me è lineare: O(n)
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
la complessità totale è nlog(n)
|
|
|
|
|
|
#13 |
|
Junior Member
Iscritto dal: Jul 2010
Messaggi: 6
|
Perchè nlog(n)?
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2787
|
Applicando il Master Theorem:
l'equazione di ricorrenza della tua funzione è: T(n)=T(n/2)+n dove T(n/2) rappresenta la reiterazione del ciclo più esterno, mentre n rappresenta il numero di esecuzioni del ciclo interno In questa equazione abbiamo a=1 b=2 f(n)=n Siamo nel caso 3, infatti f(n)=n=Ω(n^(0+ε)) per ε=1 e f(n/2)<cf(n) per c>1/2 Quindi T(n)=Θ(f(n)) |
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
teorema master per una funzione non ricorsiva?
come diceva wingman: n + n/2 + n/4 + ... = n * (serie geometrica di ragione 1/2) -> 2n quindi è O(n) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:55.




















