Oppure

Loading
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 0:46
TheKaneB
la formula corretta della funzione O per la ricerca dicotomica (o binaria, se vuoi chiamarla così;), è O( log2( n ))
Attento a non confonderti. L'equazione che hai scritto tu, cioè O(N) = log2(N), è priva di ogni significato matematico.
aaa
11/02/10 11:42
BugliL
Postato originariamente da TheKaneB:

la formula corretta della funzione O per la ricerca dicotomica (o binaria, se vuoi chiamarla così;), è O( log2( n ))
Attento a non confonderti. L'equazione che hai scritto tu, cioè O(N) = log2(N), è priva di ogni significato matematico.



Sì scusatemi perfettamente ragione volevo scrivere Cn = log2(n)....
dopo 2 ore di studio do i numeri.... :D
aaa
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)...
Il mio blog: piero.dev