10/02/10 12:33
BugliL
Qualcuno conosce un metodo semplice per capire la complessità di un'algoritmo?
Trovo che Cn = log2(n) come complessità di una ricerca binaria non sia molto intuitiva come cosa...
Ultima modifica effettuata da BugliL 11/02/10 11:43
aaa
10/02/10 15:23
netarrow
se il problema è la notazione in se, non ne conosco altre.
se il problema è invece il calcolo della complessità nelle funzioni ricorsive, se rispettano una certa forma puoi usare il teorema master:
it.wikipedia.org/wiki/…
Ultima modifica effettuata da netarrow 10/02/10 15:23
aaa
10/02/10 16:24
nessuno
Postato originariamente da BugliL:
Qualcuno conosce un metodo semplice per capire la complessità di un'algoritmo?
Trovo che O(N) = log2(N) come complessità di una ricerca binaria non sia molto intuitiva come cosa...
Non mi pare che deve essere intuitivo o meno ... è così.
Neanche la celebre e=mc^2 è intuitiva .... ma è così.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
11/02/10 11:45
BugliL
Postato originariamente da nessuno:
Non mi pare che deve essere intuitivo o meno ... è così.
Neanche la celebre e=mc^2 è intuitiva .... ma è così.
Mi sono spiegato male.... il mio problema è come arrivare a log2(n) non la funzione in se stessò. Il risultato mi è chiaro, è il procedimento con cui arrivarci che mi risulta difficoltoso...
Ultima modifica effettuata da BugliL 11/02/10 11:49
aaa
11/02/10 11:52
netarrow
per arrivare a quel risultato o usi il teorema master (però non ricordo la formula di ricorrenza della ricerca dicotomica quindi non sono sicuro si possa usare) o devi costruirti l'albero delle ricorrenze e sfruttando le proprietà degli alberi calcolarti una serie che risolta ti darà il risultato finale.
ah dimenticavo c'è anche il metodo per sostituzione dove mano a mano sostituisci nella formula di ricorrenza i vari passi, ma è più facile incasinarsi li.
Ultima modifica effettuata da netarrow 11/02/10 11:54
aaa
11/02/10 17:58
pierotofy
Un altro metodo che puoi utilizzare se la funzione e' abbastanza semplice e' attraverso l'osservazione del sorgente... ad esempio un algoritmo che per fare i suoi calcoli impiega due cicli for nidificati da 0 a N (e questa e' la parte piu' pensante dell'algoritmo) sai subito che e' O(N^2)...